Xcode 4/iOS - 从我的应用程序内部使用SMTP发送电子邮件

Ale*_*ere 10 email frameworks smtp objective-c ios

我一直在寻找一个框架,只允许我从我的应用程序内部发送电子邮件.我已经尝试过MailCore,Pantomime和SKPSMTP都没有运气.我不能让它们在Xcode中编译,所以我认为它们已经过时了.有什么方法可以做到这一点吗?如果是这样,怎么样?谢谢.

Sri*_*aju 18

您可以轻松地从iOS设备发送电子邮件.无需实施SMTP和所有.在iOS中使用内置电子邮件功能的最佳方法是它可以访问通讯录!因此它会自动完成名称和电子邮件地址.Yaaiiii!

包括AddressBook,AddressBookUIMessageUI框架和代码这样的事情.请注意,您甚至可以选择以HTML格式发送内容!

#import <MessageUI/MessageUI.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>

MFMailComposeViewController *mailComposer; 
mailComposer  = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
[mailComposer setModalPresentationStyle:UIModalPresentationFormSheet];
[mailComposer setSubject:@"your custom subject"];
[mailComposer setMessageBody:@"your custom body content" isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
Run Code Online (Sandbox Code Playgroud)

为了完整起见,如果用户按下cancel或者send- 我必须编写此选择器以关闭电子邮件窗口

- (void)mailComposeController:(MFMailComposeViewController*)controller 
          didFinishWithResult:(MFMailComposeResult)result
                        error:(NSError*)error 
{ 
    if(error) NSLog(@"ERROR - mailComposeController: %@", [error localizedDescription]);
    [self dismissModalViewControllerAnimated:YES];
    return;
}
Run Code Online (Sandbox Code Playgroud)

快乐的编码......


Col*_*lin 6

应该注意的是,MFMailComposeViewController有一个名为canSendMail的方法.如果您在没有MFMailComposeViewController电子邮件帐户的设备上展示之前未进行检查,则会收到SIGABRT.

在设备或模拟器上进行测试时很容易错过,因为您可能在Mac和iPad上有一个电子邮件帐户.