IOS中发送邮件的两种方式
来源:互联网 发布:2016网络流行成语 编辑:程序博客网 时间:2024/05/19 18:39
ViewController.h
#import <UIKit/UIKit.h>#import <MessageUI/MessageUI.h>@interface ViewController : UIViewController<MFMailComposeViewControllerDelegate>@end
ViewController.m
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; UIButton *mailToURLButton = [UIButton buttonWithType:UIButtonTypeCustom]; [mailToURLButton setFrame:CGRectMake(50, 100, 220, 50)]; [mailToURLButton setBackgroundColor:[UIColor orangeColor]]; [mailToURLButton setTitle:@"使用mailToURL发送邮件" forState:UIControlStateNormal]; [mailToURLButton addTarget:self action:@selector(mailToURLButtonAct) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:mailToURLButton]; UIButton *mailInAPPButton = [UIButton buttonWithType:UIButtonTypeCustom]; [mailInAPPButton setFrame:CGRectMake(50, 250, 220, 50)]; [mailInAPPButton setBackgroundColor:[UIColor orangeColor]]; [mailInAPPButton setTitle:@"使用mailInAPP发送邮件" forState:UIControlStateNormal]; [mailInAPPButton addTarget:self action:@selector(mailInAPPButtonAct) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:mailInAPPButton];}/** * 通多调用系统的 urlScheme来发送邮件 * 会离开当前的APP */- (void)mailToURLButtonAct{ /* Mailto后为收件人地址,cc后为抄送地址,bcc后为密件抄送地址,subject后为邮件的主题,body后为邮件的内容,如果Mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的每一个都以“&”开头 多个邮件地址中间用逗号(",")隔开 subject和body需要进行url编码 否则会打不开系统邮件 返回NO */ NSString *content = [@"邮件 内容" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSString *urlString = [NSString stringWithFormat:@"mailto:24129114@qq.com,test1@qq.com?cc=j24129114@163.com,test2@qq.com&bcc=test3@qq.com,test4@qq.com&subject=hello-word&body=%@", content]; BOOL flag = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]]; if (!flag) { NSLog(@"不能打开应用程序"); }}- (void)mailInAPPButtonAct{ Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (mailClass != nil){ if ([mailClass canSendMail]){ [self sendEmail]; }else{ //这里可以通过调用系统的URLScheme来发送邮件 } }else{ //这里可以通过调用系统的URLScheme来发送邮件 }}/** * 在APP里面通过调用官方接口开发送邮件 需要引入MessageUI.framework 并实现MFMailComposeViewControllerDelegate * 不会离开当前的APP 并且可以发送附近(比如图片) */- (void)sendEmail{ MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init]; mailPicker.mailComposeDelegate = self; //设置主题 [mailPicker setSubject: @"eMail 主题"]; [mailPicker setToRecipients: [NSArray arrayWithObject: @"24129114@qq.com"]]; //收件人 [mailPicker setCcRecipients: [NSArray arrayWithObject: @"sencond@example.com"]]; //抄送 [mailPicker setBccRecipients:[NSArray arrayWithObject: @"third@example.com"]]; //密抄 // 添加图片 UIImage *addPic = [UIImage imageNamed: @"cell_image.png"]; //NSData *imageData = UIImagePNGRepresentation(addPic); // png NSData *imageData = UIImageJPEGRepresentation(addPic, 1); // jpeg //fileName 对应的值是邮件中附件的名字 不能为nil和 @"" [mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"file.png"]; NSString *emailBody = @"eMail 正文"; [mailPicker setMessageBody:emailBody isHTML:YES]; [self presentModalViewController: mailPicker animated:YES];}#pragma mark - MFMailComposeViewControllerDelegate Method- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ NSString *msg; switch (result) { case MFMailComposeResultCancelled: msg = @"邮件发送取消"; break; case MFMailComposeResultSaved: msg = @"邮件保存成功"; break; case MFMailComposeResultSent: msg = @"邮件发送成功"; break; case MFMailComposeResultFailed: msg = @"邮件发送失败"; break; default: break; } NSLog(@"status:%@",msg); [self dismissModalViewControllerAnimated:YES];}@end
0 0
- IOS中发送邮件的两种方式
- ios-发送邮件两种方式实现
- ABAP 发送邮件的两种方式
- iOS 发送Email的两种方式
- ios-发送信息的两种方式
- SharePoint 2010 中用代码发送邮件的两种方式
- php邮件发送的两种方式 smtp
- iOS 发邮件两种方式
- asp.net中发送邮件的几种方式
- 中发送邮件的新方式
- django 发送邮件的两种方法
- 短信的发送(两种发送方式)
- ios -静默方式发送邮件
- spring4+ThreadPoolTaskExecutor创建线程 两种方式发送邮件
- C和C#两种方式实现简单的邮件发送
- Openlaszlo中发送自定义事件的两种方式
- C# 发送邮件的几种方式
- java 发送邮件的4种方式
- 遍历一次求单链表中间节点
- 【poj】 DP题集
- 安卓超级炫丽的菜单效果
- ios7适配 通知栏UINavigationBar遮挡view的问题
- 关于近期项目的思考 - 1.画面
- IOS中发送邮件的两种方式
- Codeforces Round #134 (Div. 2) C. Ice Skating
- gsoap的第一次使用
- 几乎包括了UISegmentedControl的所有属性和方法
- vc 屏幕上绘制透明矩形框(可设置颜色,宽度)
- Ubuntu与Win7双系统内 grub引导的错误的解决
- android之service理解
- activemq初级
- ZOJ1414 Number Steps