iOSシミュレーターでメールを送信するにはどうすればいいですか?質問する

iOSシミュレーターでメールを送信するにはどうすればいいですか?質問する

iPhone シミュレーター経由で電子メールを送信できるかどうか知りたいです。iPhone 経由で電子メールを送信するためのチュートリアルを次のように見ました。

http://www.edumobile.org/iphone/iphone-programming-tutorials/compose-mail-application-in-iphone/

テストするには実際のデバイスが必要ですか? iPhone シミュレーター経由でメールを送信したい場合はどうすればいいですか?

ベストアンサー1

MFMailComposeResult返される が正しいことを iOS に頼る必要がありますmailComposeController:didFinishWithResult:error:。シミュレーターはその結果を偽造します。 と表示されますが、実際のメールは送信されませんMFMailComposeResultSent

前述のチュートリアルでは重要な点が抜けている: を使用する前にまず行うべきことMFMailComposeViewControllerは を確認することです[MFMailComposeViewController canSendMail]。ユーザーがデバイスでメールを設定していない場合は が返されますNO。iOS 3.0 より前のバージョンをサポートする必要がある場合は、クラスが存在するかどうかを確認するのが正しい方法ですMFMailComposeViewController

Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
    if ([mailClass canSendMail])
    {
        [self displayComposerSheet];
    }
    else
    {
        [self launchMailAppOnDevice];
    }
}
else
{
    [self launchMailAppOnDevice];
}

ただし、canSendMail の問題は実際のデバイスでのみテストできます。canSendMail をチェックせず、ユーザーにメール アカウントが設定されていない場合はクラッシュします。

おすすめ記事