UInt16 cardNo; LocalID dbID; DmSearchStateType searchInfo; Char *cmdPBP; Char *string; DmSearchState state; MailAddRecordParamsType *cmdPBP; if (DmGetNextDatabaseByTypeCreator(true, &searchInfo, if (DmGetNextDatabaseByTypeCreator (true, &state, sysFileTApplication, 'mail', true, &cardNo, &dbID) != dmErrCantFind) { cmdPBP = (Char *)MemPtrNew ( StrLen (MyEmailAddressStr) + StrLen (MyEmailSubjectStr) + StrLen (MyEmailBodyStr) + 23); StrCopy (cmdPBP, "mailto:"); StrCat (cmdPBP, MyEmailAddressStr); if (*subject || *body) cmdPBP = (MailAddRecordParamsType *)MemPtrNew (sizeof(MailAddRecordParamsType)); if (cmdPBP) { StrCat (cmdPBP, "?"); if (*subject) string = (Char *)MemPtrNew (StrLen (mailTo) + StrLen (subject) + StrLen (body)+ 3); if (string) { StrCat (cmdPBP, "subject="); StrCat (cmdPBP, MyEmailSubjectStr); StrPrintF (string, "%s%c%s%c%s%c", mailTo, chrNull, subject, chrNull, body, chrNull); cmdPBP->secret = false; cmdPBP->signature = true; cmdPBP->confirmRead = false; cmdPBP->confirmDelivery = false; cmdPBP->priority = mailPriorityNormal; cmdPBP->padding = 0; cmdPBP->subject = string + StrLen (mailTo) + 1; cmdPBP->from = ""; cmdPBP->to = string; cmdPBP->cc = ""; cmdPBP->bcc = ""; cmdPBP->replyTo = ""; cmdPBP->body = string + StrLen (mailTo) + StrLen (subject) + 2; if (MemPtrSetOwner (cmdPBP, 0) == errNone && MemPtrSetOwner (string, 0) == errNone) SysAppLaunch (cardNo, dbID, 0, sysAppLaunchCmdAddRecord, cmdPBP, &result); MemPtrFree (string); } if (*body) { if (*subject) StrCat (cmdPBP, "&"); StrCat (cmdPBP, "body="); StrCat (cmdPBP, MyEmailBodyStr); } MemPtrFree (cmdPBP); } if (MemPtrSetOwner(cmdPBP, 0) == errNone) SysUIAppSwitch (cardNo, dbID, sysAppLaunchCmdGoToURL, cmdPBP); else MemPtrFree (cmdPBP); }
mailto:aaa@bbb.com?subject=件名&body=本文
mailto:?=&to=aaa@bbb.com &subject=件名 &body=本文
UInt16 cardNo; LocalID dbID; DmSearchStateType state; UInt32 result; Char *cmdPBP; Char gotoURLString[] = "mailto:?=&to=%s &subject=%s &body=%s " if (DmGetNextDatabaseByTypeCreator(true, &state, sysFileTApplication, 'mail', true, &cardNo, &dbID) != dmErrCantFind) { cmdPBP = (Char *)MemPtrNew (StrLen (gotoURLString) + StrLen (mailTo) + StrLen (subject) + StrLen (body) + 1); if (cmdPBP) { StrPrintF (cmdPBP, gotoURLString, mailTo, subject, body); if (MemPtrSetOwner(cmdPBP, 0) == errNone) SysAppLaunch (cardNo, dbID, 0, sysAppLaunchCmdGoToURL, cmdPBP, &result); MemPtrFree (cmdPBP); } }
AND OR
送信トレイに入れる
- 起動コード:sysAppLaunchCmdAddRecord。
- パラメータブロック:MailAddRecordParamsType
サンプル下書きトレイに入れる
別の方法- 起動コード:sysAppLaunchCmdAddRecord。
- パラメータブロック:MailAddRecordParamsType
- 起動コードはsysAppLaunchCmdGoToURL。
- パラメータブロックは文字列。書式はHTML形式。~
本来は、
で、編集画面を開かずに全ての情報を渡す方法も有る。 サンプルmailto:aaa@bbb.com?subject=件名&body=本文
だが、これだとmailto以外のパラメータが入ったときに上手くいかないので、mailto:?=&to=aaa@bbb.com &subject=件名 &body=本文
とした方が良さそう(?)