一、使用iPhone系統(tǒng)自帶郵件發(fā)送郵件
1. MFMailComposeViewController(原生)——使用模態(tài)跳轉出郵件發(fā)送界面。具體實現(xiàn)如下:
1) 項目需要導入MessageUI.framework框架
2) 在對應類里導入頭文件:#import <MessageUI/MessageUI.h>
3) 對應的類遵從代理:MFMailComposeViewControllerDelegate
2.代碼
- (IBAction)sendMail:(UIButton *)sender {
//判斷用戶是否已設置郵件賬戶
if ([MFMailComposeViewController canSendMail]) {
[self sendEmailAction]; // 調用發(fā)送郵件的代碼
}else{
//給出提示,設備未開啟郵件服務
NSLog(@"");
}
}
-(void)sendEmailAction{
// 創(chuàng)建郵件發(fā)送界面
MFMailComposeViewController *mailCompose = [[MFMailComposeViewController alloc] init];
// 設置郵件代理
[mailCompose setMailComposeDelegate:self];
// 設置收件人
[mailCompose setToRecipients:@[@"abc123@163.com"]];
// // 設置抄送人
// [mailCompose setCcRecipients:@[@"123456@qq.com"]];
// // 設置密送人
// [mailCompose setBccRecipients:@[@"6789@163.com"]];
// 設置郵件主題
[mailCompose setSubject:@"設置郵件主題"];
//設置郵件的正文內容
NSString *emailContent = @"我是郵件內容";
// 是否為HTML格式
[mailCompose setMessageBody:emailContent isHTML:NO];
// 如使用HTML格式啼止,則為以下代碼
// [mailCompose setMessageBody:@"<html><body><p>Hello</p><p>World!</p></body></html>" isHTML:YES];
//添加附件
// UIImage *image = [UIImage imageNamed:@"qq"];
// NSData *imageData = UIImagePNGRepresentation(image);
// [mailCompose addAttachmentData:imageData mimeType:@"" fileName:@"qq.png"];
// NSString *file = [[NSBundle mainBundle] pathForResource:@"EmptyPDF" ofType:@"pdf"];
// NSData *pdf = [NSData dataWithContentsOfFile:file];
// [mailCompose addAttachmentData:pdf mimeType:@"" fileName:@"EmptyPDF.pdf"];
// 彈出郵件發(fā)送視圖
[self presentViewController:mailCompose animated:YES completion:nil];
}
#pragma mark - MFMailComposeViewControllerDelegate的代理方法:
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
switch (result) {
case MFMailComposeResultCancelled:
NSLog(@"Mail send canceled: 用戶取消編輯");
break;
case MFMailComposeResultSaved:
NSLog(@"Mail saved: 用戶保存郵件");
break;
case MFMailComposeResultSent:
NSLog(@"Mail sent: 用戶點擊發(fā)送");
break;
case MFMailComposeResultFailed:
NSLog(@"Mail send errored: %@ : 用戶嘗試保存或發(fā)送郵件失敗", [error localizedDescription]);
break;
}
// 關閉郵件發(fā)送視圖
[self dismissViewControllerAnimated:YES completion:nil];
}
參考文章:
iOS 發(fā)送郵件(E-mail)