質問: monacaを利用しハイブリッドアプリを作成しています。 ボタンを押下にて、アプリ内で保持したメールアドレスへメーラー等を起動せず自動送信したいです。 iosであればmailto, androidであればwebintent等を利用すればメーラーの起動まではたどり着きますが、自動送信(バックグラウンド送信)の方法が分かりません。 どのような手法が考えられるか、ご教示ください。
回答: 以前成功した方法を共有します。 FrontierMailというKou様が作成されたオープンソースを利用しました。 (4年前から更新が止まっているため最新環境では動作するか未検証です) こちらのReadMe手順に従いFrameworkを作成します。 プロジェクトにFrameworkを追加し、以下のような実装でメールが送信できます。 テストクラスの実装引用です。 ``` - (void)testSMTPSendPlainText { // メールメッセージを作成する FRMailMessage* message = [FRMailMessage mailMessage]; // 件名を設定する [message setSubject:MAIL_SUBJECT]; // FROM名とアドレスを設定する [message setFromAddress:[FRMailAddress mailAddressWithName:MAIL_FROM_NAME address:MAIL_FROM_ADDRESS]]; // 送信先名称とアドレスを設定する [message addToAddress:[FRMailAddress mailAddressWithName:MAIL_TO_NAME address:MAIL_TO_ADDRESS]]; // MIMEパーツを作成する FRMimePart* mimeTextPart = [FRMimePart mimePart]; // 本文を設定する [mimeTextPart setText:MAIL_MESSAGE]; // メールメッセージへMIME情報を設定する [message setMimePart:mimeTextPart]; // SMTPセッションを作成する FRSMTPSession* session = [FRSMTPSession smtpWithConnectionType:FRSMTPConnectionTLS hostAddress:SMTP_HOST portNo:SMTP_PORT_NO]; // セッションへ接続する [session connect:SMTP_ACCOUNT password:SMTP_PASSWORD]; // メールを送信する [session sendMailMessage:message]; } ``` 自分のGmailのアカウントをSMTPサーバとして使用しました。 SMTP_ACCOUNTとSMTP_PASSWORDには自分のGmailアカウント名とパスワードを入れました。