Palm標準のMailを使って、他のアプリからメールを送る方法。

#contents

**1. 送信トレイに入れる

-起動コード:''[[sysAppLaunchCmdAddRecord:http://www.palmos.com/dev/support/docs/palmos/AppLaunchCodes.html#1011469]]''。
-パラメータブロック:''[[MailAddRecordParamsType:http://www.palmos.com/dev/support/docs/palmos/AppLaunchCodes.html#1011483]]''

サンプル
-パラメータ
--宛先:mailTo
--件名:subject
--本文:body

 UInt16	cardNo;
 LocalID		dbID;
 Char		*string;
 DmSearchState	state;
 MailAddRecordParamsType *cmdPBP;
 
 if (DmGetNextDatabaseByTypeCreator (true, &state,
     sysFileTApplication, creator, true, &cardNo, &dbID);
     != dmErrCantFind)
 {
  cmdPBP =
  (MailAddRecordParamsType *)MemPtrNew (sizeof(MailAddRecordParamsType));
  if (cmdPBP)
  {
   string = (Char *)MemPtrNew (StrLen (mailTo)
                             + StrLen (subject)
                             + StrLen (body)+ 3); 
   if (*string)
   {
    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;
 
    MemPtrSetOwner (cmdPBP, 0);
    MemPtrSetOwner (string, 0);
    SysAppLaunch (cardNo, dbID, 0,
                  sysAppLaunchCmdAddRecord, cmdPBP, &result);
    MemPtrFree (string);
   }
   MemPtrFree (cmdPBP);
  }
 }

**2. 下書きトレイに入れる

-起動コードは''[[sysAppLaunchCmdGoToURL:http://www.palmos.com/dev/support/docs/palmos/AppLaunchCodes.html#1012191]]''。
-パラメータブロックは文字列。書式はHTML形式。~
本来は、
 mailto:aaa@bbb.com?subject=件名&body=本文
だが、これだとmailto以外のパラメータが入ったときに上手くいかないので、
 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, &searchInfo,
     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);
  }
 }