1

iphone開発初心者です。メールを送信できるアプリを構築しています。次のコードを使用しています

- (IBAction)btnsendPressAction:(id)sender {

    if([MFMailComposeViewController canSendMail]){

        MFMailComposeViewController *mailer=[[MFMailComposeViewController alloc]init];
        mailer.mailComposeDelegate=self;
        [mailer setSubject:@"A Message for testing"];
      NSArray *toRecipients = [NSArray arrayWithObjects:@"rajshetty2125@gmail.com", @"secondMail@example.com", nil];
        [mailer setToRecipients:toRecipients];

        UIImage *image=[UIImage imageNamed:@"logo.png"];
        NSData *imageData=UIImagePNGRepresentation(image);
        [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"logo.png"];
        NSString *emailBody=@"This is test email";
        [mailer setMessageBody:emailBody isHTML:NO];
        [self presentModalViewController:mailer animated:YES];
        mailer.modalPresentationStyle = UIModalPresentationPageSheet ;


    }
    else{

        UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"failure" message:@"Alert" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alert show];
    }
}

私の問題は、mailComposeControllerデリゲートが呼び出されず、アプリからメールを送信できないことです.多くのリンクをたどりましたが、どこでも同じメソッドを見つけました. 誰でもこれについて私を助けることができますか?

4

4 に答える 4

2

Simulator からメールを送信することはできません。この機能は、メール アプリケーションで構成された任意のアカウントを持つ iOS デバイスでのみ確認できます。

于 2012-08-28T07:11:01.907 に答える
0

このスニペットは私のために働いています:

if ([MFMailComposeViewController canSendMail]) {
    self.mailController = [[MFMailComposeViewController alloc] init];
    [self.mailController setSubject:@"Invitation"];
    [self.mailController setMessageBody:@"Message" isHTML:NO];
    self.mailController.mailComposeDelegate = self;

    [self presentModalViewController:self.mailController animated:YES];
}

ただし、インターフェースにデリゲートを実装していることを確認してください

@interface MyClass() <MFMailComposeViewControllerDelegate>

コールバックメソッドを確認します。

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
}
于 2012-08-28T07:09:55.137 に答える
0

ここでこのリンクを使用し、デバイスにアカウントを追加 (構成) すると、あなただけがメールを送信できます。

于 2012-08-28T07:04:52.180 に答える
-1

ちょっとわかりませんが、役に立つかもしれません。最後の行を置き換えてください

mailer.modalPresentationStyle = UIModalPresentationPageSheet ;

[self presentModalViewController: mailer animated:YES];
于 2012-08-28T07:09:17.057 に答える