需要導(dǎo)入<MessageUI/MessageUI.h>框架
/* 發(fā)送郵件 */
- (IBAction)email:(id)sender {
if (NO == [MFMailComposeViewController canSendMail]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"友情提示" message:@"您還未配置郵箱賬戶旁壮,是否現(xiàn)在跳轉(zhuǎn)配置监嗜?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
[alert show];
return;
}
// 如果沒(méi)有配置郵箱的話,創(chuàng)建出來(lái)的對(duì)象為nil,彈出會(huì)crash
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
// 設(shè)置picker的委托方法抡谐,完成之后會(huì)自動(dòng)調(diào)用成功或失敗的方法
picker.mailComposeDelegate = self;
// 添加主題
[picker setSubject:@"案件報(bào)告"];
// 添加收件人
NSArray *toRecipients = [NSArray arrayWithObject:@"404401637@163.com"];
// 添加抄送
NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@qq.com",@"third@qq.com", nil];
// 添加密送
NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@qq.com"];
[picker setToRecipients:toRecipients];
[picker setCcRecipients:ccRecipients];
[picker setBccRecipients:bccRecipients];
// 拼接郵件body默認(rèn)顯示的信息
NSString *emailBody = [NSString stringWithFormat:@"分享自:騰訊扣扣.訴訟報(bào)告.app\n<img src='http://static.588ku.com/imgPath/public/images/ku-logoNewV1.png' /><p>我轉(zhuǎn)載的圖片</p>"];
[picker setMessageBody:emailBody isHTML:YES];
// 添加word文檔附件
NSString *path = [[NSBundle mainBundle] pathForResource:@"訴訟報(bào)告-2018.docx" ofType:nil];
NSData *docData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:docData mimeType:@"application/msword" fileName:@"訴訟報(bào)告-2018.docx"];
// 添加圖片附件
NSData *myData = UIImageJPEGRepresentation([UIImage imageNamed:@"header_cry_icon"], 1.0);
[picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"new.png"];
[self presentViewController:picker animated:YES completion:nil];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"郵件發(fā)送取消"); // 郵件發(fā)送取消
break;
case MFMailComposeResultSaved:
NSLog(@"郵件保存成功"); // 郵件保存成功
break;
case MFMailComposeResultSent:
NSLog(@"郵件發(fā)送成功"); // 郵件發(fā)送成功
break;
case MFMailComposeResultFailed:
NSLog(@"郵件發(fā)送失敗"); // 郵件發(fā)送失敗
break;
default:
NSLog(@"郵件未發(fā)送");
break;
}
[controller dismissViewControllerAnimated:YES completion:nil];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
// 跳到郵箱去
NSURL *url = [NSURL URLWithString:@"mailto://"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
}
}
- 其他附件配置
/* 發(fā)送圖片附件 */
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"rainy.jpg"];
/* 發(fā)送txt文本附件 */
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyText" ofType:@"txt"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"text/txt" fileName:@"MyText.txt"];
/* 發(fā)送doc文本附件 */
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyText" ofType:@"doc"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"text/doc" fileName:@"MyText.doc"];
/* 發(fā)送pdf文檔附件 */
NSString *path = [[NSBundlemainBundle]pathForResource:@"CodeSigningGuide"ofType:@"pdf"];
NSData *myData = [NSDatadataWithContentsOfFile:path];
[pickeraddAttachmentData:myDatamimeType:@"file/pdf"fileName:@"rainy.pdf"];
==配置iOS自帶郵件賬號(hào)注意==
- 如果沒(méi)有配置郵箱賬號(hào)直接跳到郵箱會(huì)崩潰裁奇,所以要處理下
- 賬號(hào)里面的IMAP、SMTP的密碼麦撵,不是指郵箱的密碼刽肠,是第三方郵箱配置授權(quán)碼,需要到對(duì)應(yīng)的郵箱管理置平臺(tái)去獲取
- 跳轉(zhuǎn)系統(tǒng)郵箱前可以配置一些收件人厦坛、抄送人等信息五垮,但是要確保所有收件人的郵箱地址可用,不然會(huì)導(dǎo)致這封郵件發(fā)不出去杜秸,所有人都收不到放仗,這個(gè)跟網(wǎng)頁(yè)上操作不一樣,網(wǎng)頁(yè)上是會(huì)全發(fā)出去撬碟,沒(méi)收到就沒(méi)收到