只能在真机使用.

模拟器没有E-mail发送功能.无法调用

#import "EmailViewController.h"

#import <UIKit/UIKit.h>

#import <MessageUI/MFMailComposeViewController.h>

@interface EmailViewController ()<MFMailComposeViewControllerDelegate>

@end

@implementation EmailViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];

btn.frame=CGRectMake(20, 100, 200, 100);

[btn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:btn];

}

-(void)click

{

Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));

if (!mailClass) {

[self alertWithMessage:@"当前系统版本不支持应用内发送邮件功能,您可以使用mailto方法代替"];

return;

}

if (![mailClass canSendMail]) {

[self alertWithMessage:@"用户没有设置邮件账户"];

return;

}

[self displayMailPicker];

}

- (void)displayMailPicker

{

MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];

mailPicker.mailComposeDelegate = self;

//设置主题

[mailPicker setSubject: @"主题"];

//添加收件人

NSArray *toRecipients = [NSArray arrayWithObject: @"liuliuliu@hotmail.com"];

[mailPicker setToRecipients: toRecipients];

//添加抄送

//NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];

//[mailPicker setCcRecipients:ccRecipients];

//添加密送

//NSArray *bccRecipients = [NSArray arrayWithObjects:@"fourth@example.com", nil];

//[mailPicker setBccRecipients:bccRecipients];

// 添加一张图片

UIImage *addPic = [UIImage imageNamed: @"Icon@2x.png"];

NSData *imageData = UIImagePNGRepresentation(addPic);            // png

//关于mimeType:http://www.iana.org/assignments/media-types/index.html

[mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"Icon.png"];

NSString *emailBody = @"<font color='red'>eMail</font> 正文";

[mailPicker setMessageBody:emailBody isHTML:YES];

//[self presentModalViewController: mailPicker animated:YES];

[self presentViewController:mailPicker animated:YES completion:nil];

}

#pragma mark - 实现 MFMailComposeViewControllerDelegate

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

{

//关闭邮件发送窗口

//[self dismissModalViewControllerAnimated:YES];

[self dismissViewControllerAnimated:YES completion:nil];

NSString *msg;

switch (result) {

case MFMailComposeResultCancelled:

msg = @"用户取消编辑邮件";

break;

case MFMailComposeResultSaved:

msg = @"用户成功保存邮件";

break;

case MFMailComposeResultSent:

msg = @"用户点击发送,将邮件放到队列中,还没发送";

break;

case MFMailComposeResultFailed:

msg = @"用户试图保存或者发送邮件失败";

break;

default:

msg = @"";

break;

}

[self alertWithMessage:msg];

}

- (void)alertWithMessage:(NSString*)message

{

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil

message:message

delegate:nil

cancelButtonTitle:@"确定"

otherButtonTitles:nil, nil];

[alert show];

}

发送邮件--MFMailComposeViewController的更多相关文章

  1. iOS-----MFMessageCompose 和 MFMailComposeViewController的使用方法

    MFMessageCompose 和 MFMailComposeViewController的使用方法 使用MFMessageComposeViewCOntroller发短信 应用想自己提供界面让用户 ...

  2. IOS,发短信,发邮件,打电话

    今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // ...

  3. iOS7 StatusBar 使用小结

    1. 样式 2. 显示和隐藏 3. 动画效果 4. 默认无StatusBar 其他 iOS7 中的StatusBar和之前版本的相比发生了很大变化,在iOS7下对statusbar的使用需要全新的方法 ...

  4. 仿简书分享:UIActivityViewController系统原生分享

    接下来介绍UIActivityViewController: 1. 创建要分享的数据内容,加在一个数组 ActivityItems里. NSString *textToShare = @"我 ...

  5. iOS- 如何将应用集成发短信、发邮件、打电话

    今天把APP里常用小功能 例如发短信.发邮件.打电话. 全部拿出来简单说说它们的实现思路. 1.发短信 实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点. 1.1.发短信(1)——URL ...

  6. iOS打电话、发短信、发邮件功能开发

    本文转载至 http://www.lvtao.net/ios/506.html 今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主 ...

  7. UIActivityViewController实现系统原生分享

    代码地址如下:http://www.demodashi.com/demo/11042.html 一.效果预览 二.接下来介绍UIActivityViewController,跟我动手做 1.创建要分享 ...

  8. MFMailComposeViewController发送邮件的实例

    本文转载至 http://blog.csdn.net/liufeng520/article/details/7585140   iPhone API已经提供了系统写邮件界面的接口,使用MFMailCo ...

  9. MFMailComposeViewController发送邮件

    1.iPhone API已经提供了系统写邮件界面的接口,使用MFMailComposeViewController,用来显示界面. 2.项目中需要添加MessageUi.framework.头文件加入 ...

随机推荐

  1. maven自动部署Tomcat错误排除

    转自:https://blog.csdn.net/wuha0/article/details/18658113 在Maven与Tomcat配合部署过程中,最常见的错误有三种,折腾了半天,终于找到三种错 ...

  2. mysql数据库主从同步读写分离(一)主从同步

    1.mysql数据库主从同步读写分离 1.1.主要解决的生产问题 1.2.原理 a.为什么需要读写分离? 一台服务器满足不了访问需要.数据的访问基本都是2-8原则. b.怎么做?  不往从服务器去写了 ...

  3. java工程师基础笔试题(一)-参考答案

    一.选择和填空  (不定项哦!) 1,如下是一份文件名为Test2.java的源文件,请问,编译该文件之后会生成几份字节码文件 class Test{ class Inner{} static cla ...

  4. 使用Jmeter(三十)针对ActiveMQ JMS POINT TO POINT压力测试(转载)

    转载自 http://www.cnblogs.com/yangxia-test 准备工作 针对JMS类型的Sampler,需要额外的jar包(这里用的是apache ActiveMQ,将下载的AMQ  ...

  5. 六、Prototype 原型设计模式

    需求:使用 new 生成实例需要指定类名,在不指定类的情况下生成实例 代码清单: 原型接口 Product: public interface Product extends Cloneable{ v ...

  6. Python图片识别找坐标(appium通过识别图片点击坐标)

    ***如果只想了解图片相似度识别,直接看第一步即可 ***如果想了解appium根据图片识别点击坐标,需要看第一.二.三步   背景|在做UI测试时,发现iOS自定义的UI控件,appium识别不到. ...

  7. Android studio 安装中遇到一些问题的解决办法,分享一下

    从eclipse转到android studio也是很无耐,刚开始总是会遇到很多难题,但是都不要轻言放弃. 以下是我遇到的问题,并通过搜索引擎找到的解决办法,善用工具,善用头脑,勿为伸手之人. And ...

  8. 202. Happy Number (INT)

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  9. UVa 10129 Play on Words(有向图欧拉路径)

    Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to s ...

  10. 项目总结12:bootstrap-select下拉框模糊搜索

    bootstrap select下拉框模糊搜索 关键字 bootstrap-select 下拉框模糊搜索 正文(直接上源码) <%@ page language="java" ...