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 をチェックせず、ユーザーにメール アカウントが設定されていない場合はクラッシュします。