0

MFMailComposeViewControllerを使用してメールを送信しようとしています。メールが送信されないことを除いて、すべてが機能し、私は常にMFMailComposeResultFailedを取得します。

ポインタはありますか?私はシミュレーターを使用していません、そしてメールを送ることは私のデバイスから働きます。接続があり(Reachabilityを介してテスト)、[MFMailComposeViewControllercanSendMail]はYESを返します。

プロジェクトにコンパイラの警告はなく、クラッシュもありません...

4

3 に答える 3

2

これはIOS4のバグでした。

電話にExchangeメールアカウントと古い非アクティブなIMAPアカウントの両方がありました。どうやら、それはiOS4の問題につながります。メールは実際には送信トレイに詰まっています。非アクティブなIMAPアカウントを削除すると、すべてが期待どおりに機能しました。

于 2010-08-04T07:10:07.600 に答える
1

一部の読者はこの問題に直面している可能性があります。

<MFMailComposeViewControllerDelegate>プロトコルを実装していることを確認してください

コードは次のとおりです。

// in TestViewController.h
@interface TestViewController : UIViewController<MFMailComposeViewControllerDelegate>
@end

// in TestViewController.m
@interface TestViewController ()
@end

@implementation
- (void) compose {
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject:@"Hello there"];

    [picker setToRecipients:@[]];

    // Fill out the email body text
    NSString *emailBody = @"Hello, sending a message from my app";

    [picker setMessageBody:emailBody isHTML:NO];

    // use this function. presentModalViewController:... is deprecated
    [self presentViewController:picker animated:YES completion:nil];
}

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    [self dismissViewControllerAnimated:YES completion:nil];
}
@end
于 2013-01-11T15:11:18.133 に答える
0

コードスニペットを見ずに見分けるのは難しいですが、次のことを確認する必要があります。

1)デリゲートを正しく設定し、MFMailComposeViewController'sそのデリゲートメソッドを実装しました。

2)を使用してメールの件名を設定しましたsetSubject:

3)を使用してメッセージ本文を設定しましたsetMessageBody:isHTML:

オプションで、を使用してアタッチを設定しますaddAttachmentData:mimeType:fileName:

4)次のようなものを使用してメール作成ビューコントローラをユーザーに提示しました

[self presentModalViewController:mcvc animated:YES];

お役に立てれば。

于 2010-08-03T14:44:55.337 に答える