Отправка электронной почты с использованием mailto: URL - PullRequest
2 голосов
/ 26 января 2012

Может кто-нибудь помочь мне со следующим кодом?Для отправки электронной почты в iOS приведенный ниже код является хорошим или я должен использовать MFMailComposeViewController, чем этот?

1002

Это надежный код для отправки почты?

Ответы [ 3 ]

6 голосов
/ 26 января 2012

Если это нацелено на IOS 3.0+, тогда MFMailCompseViewController

    #import <MessageUI/MFMailComposeViewController.h>
  //  ....

        MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
        controller.mailComposeDelegate = self;
        [controller setSubject:@"My Subject"];
        [controller setMessageBody:@"Hello there." isHTML:NO]; 
        if (controller) [self presentModalViewController:controller animated:YES];
        [controller release];

Затем пользователь выполняет работу, и вы вовремя получаете ответный вызов делегата:

 - (void)mailComposeController:(MFMailComposeViewController*)controller  
              didFinishWithResult:(MFMailComposeResult)result 
                            error:(NSError*)error;
 {
      if (result == MFMailComposeResultSent) {
          NSLog(@"sent");
        }
    [self dismissModalViewControllerAnimated:YES];
 }
2 голосов
/ 07 августа 2013

Чтобы расширить предоставленные ответы, я хотел бы добавить, что у подхода mailto есть одно преимущество: вам не нужно проверять, может ли пользователь отправлять электронные письма.Если пользователь не может, он предложит пользователю с помощью мастера электронной почты, который позволит ему / ей настроить учетную запись электронной почты с приложением Apple Mail по умолчанию.

В случае MFMailComposeViewController,Вы всегда должны проверять, может ли пользователь отправлять электронные письма методом canSendMail, и действовать соответствующим образом.

Я также хотел бы отметить, что подход mailto не позволяет вам назначать делегата впрямой путь, что делает обработку ошибок немного более сложной.

2 голосов
/ 26 января 2012

Вы действительно должны использовать MFMailComposeViewController.Он держит вас в приложении и делает ваш код более читабельным.

...