iOS 邮件

[java]  view plain copy
  1. 检测设备是否支持邮件发送功能  
  2.   
  3. Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));  
  4. if (mailClass != nil)  
  5. {  
  6.     // We must always check whether the current device is configured for sending emails  
  7.     if ([mailClass canSendMail])  
  8.     {  
  9.         [self displayComposerSheet];//调用发送邮件的方法  
  10.     }  
  11. }  

邮件发送功能是由MessageUI Framework提供的,这个框架是iPhone sdk中最简单的框。由一个类、一个视图控制器,一个protocol组成。

一、创建视图控制器:

[objc]  view plain copy
  1. MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];   
  2.     mc.mailComposeDelegate = self;   

二、设置邮件主题:

 [mc setSubject:@"Hello, World!"];

三、设置收件人,收件人有三种:

1、设置主收件人

[objc]  view plain copy
  1. [mc setToRecipients:[NSArray arrayWithObjects:@"zhuqi0@126.com",   
  2.         "@dave@iphonedevbook.com", nil nil];   

2、设置cc

 [mc setCcRecipients:[NSArray arrayWithObject:@"zhuqil@163.com"]];

3、设置bcc

[mc setBccRecipients:[NSArray arrayWithObject:@"secret@gmail.com"]]; 

四、设置邮件主体,有两种格式。

一种是纯文本

  [mc setMessageBody:@"Watson!!!\n\nCome here, I need you!" isHTML:NO]; 

一个是html格式

[objc]  view plain copy
  1. [mc setMessageBody:@"<HTML><B>Hello, Joe!</B><BR/>What do you know?</HTML>"   
  2.        isHTML:YES];  

五、添加附件

添加附件需要三个参数,一个是NSData类型的附件,一个是mime type,一个附件的名称。

添加 png

  NSString *path = [[NSBundle mainBundle] pathForResource:@"blood_orange"      
ofType:
@"png"];
NSData
*data = [NSData dataWithContentsOfFile:path];
[mc addAttachmentData:data mimeType:
@"image/png" fileName:@"blood_orange"];

 

添加附件  pdf 格式时mimetype 用@"application/pdf" 失败(在windows上面打不开,但是在mac上面没问题)

  需要更改为 @“pdf” 就可以啦。

添加 CSV 时 用@"text/cvs" 就可以啦,

六、视图呈现

    [self presentModalViewController:mc animated:YES]; 
[mc release];

七、视图控制器的委托方法

邮件视图控制器的委托方法包含在MFMailComposeViewControllerDelegate中,无论用户是否发送或取消发送,不论系统是否能够发送邮件,

方法 mailComposeController:didFinishWithResult:error: gets called都会被调用。

复制代码
- (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...");
break;
case MFMailComposeResultFailed:
NSLog(
@"Mail send errored: %@...", [error localizedDescription]);
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值