`

发送邮件---iphone开发

阅读更多

1、导入MessageUI.framework包

2、引入头文件#import <MessageUI/MessageUI.h> 

3、实现代理MFMailComposeViewControllerDelegate

代码如下:

 

1、监测手机是否遇有首发邮件功能

Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); 
                    if (mailClass != nil)  
                    {  
                        if ([mailClass canSendMail])  
                        {  
                            [self displayComposerSheet];  
                        }   
                        else   
                        {  
                            [self launchMailAppOnDevice];  
                        }  
                    }   
                    else   
                    {  
                        [self launchMailAppOnDevice];  
                    }      

2、可以发送邮件

-(void)displayComposerSheet   
{  
    NSLog(@"可以发送邮件~~~~~~~~~~~~");
    MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];  
    
    mailPicker.mailComposeDelegate = self;  
    
    //设置主题  
    [mailPicker setSubject: @"eMail主题"];  
    
    // 添加发送者  
    NSArray *toRecipients = [NSArray arrayWithObject: @"243832207@qq.com"];  
    //NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];  
    //NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com", nil];  
    [mailPicker setToRecipients: toRecipients];  
    //[picker setCcRecipients:ccRecipients];      
    //[picker setBccRecipients:bccRecipients];  
    
    // 添加图片  
//    UIImage *addPic = [UIImage imageNamed: @"123.jpg"];  
//    NSData *imageData = UIImagePNGRepresentation(addPic);            // png  
    // NSData *imageData = UIImageJPEGRepresentation(addPic, 1);    // jpeg  
//    [mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"123.jpg"];  
    
    NSString *emailBody = @"您好:您订阅的杂志,请点击一下连接进行支付!";  
    [mailPicker setMessageBody:emailBody isHTML:YES];  
    
    [self presentModalViewController: mailPicker animated:YES];  
    [mailPicker release];  
}  

3、不能发送邮件
-(void)launchMailAppOnDevice  
{  
    NSLog(@"不能发送邮件~~~~~~~~~~~~");
    NSString *recipients = @"mailto:first@example.com&subject=my email!";  
    //@"mailto:first@example.com?cc=second@example.com,third@example.com&subject=my email!";  
    NSString *body = @"&body=email body!";  
    
    NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];  
    email = [email stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];  
    
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]];  
}

4、代理方法
- (void)mailComposeController:(MFMailComposeViewController *)controller   
          didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error   
{  
    NSString *msg;  
    
    switch (result)   
    {  
        case MFMailComposeResultCancelled:  
            msg = @"邮件发送取消";  
            break;  
        case MFMailComposeResultSaved:  
            msg = @"邮件保存成功";  
            [Utils alertWithTitle:nil message:msg];  
            break;  
        case MFMailComposeResultSent:  
            msg = @"邮件发送成功";  
            [Utils alertWithTitle:nil message:msg]; 
            break;  
        case MFMailComposeResultFailed:  
            msg = @"邮件发送失败";  
            [Utils alertWithTitle:nil message:msg];  
            break;  
        default:  
            break;  
    }  
    
    [self dismissModalViewControllerAnimated:YES];  
}  
 
分享到:
评论

相关推荐

    苹果iPhone APP开发教程 iOS教程_极品

    苹果iPhone APP开发教程 iOS教程.zip ...15.发送电子邮件 16.音频和视频 17.文件处理 18.地图开发 19.应用内购买(App支付功能) 20.iAD整合 21.游戏开发GameKit 22.故事板(Storyboards) 23.自动布局 24.

    iPhone开发秘籍.part2.rar

    本书面向新的iPhone 开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程 序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格, 如何创建安全的密钥...

    iPhone开发秘籍.part4.rar

    本书面向新的iPhone 开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程 序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格, 如何创建安全的密钥...

    iPhone开发秘籍.part1.rar

    本书面向新的iPhone 开发人员,他们马上要开发实际项目,但面对着一个全新的SDK。虽然每位程 序员创建表格的目标和经验并不相同,但大多数人都需要在其开发工作中解决类似的任务:如何构建表格, 如何创建安全的密钥...

    微信小程序-通知iphone余量小程序

    2014年9月,觉得手动抢iphone太复杂,自己写了个通知iphone余量的小程序 配置 设置app.js中第7行邮件服务器 设置app.js中第9-10行的用于发送消息的邮箱(使用SMTP协议) 设置app.js中第14行接收邮件的邮箱 注意:...

    iPhone开发秘籍

    iPhone开发秘籍 The iPhone Developer's Cookbook Building Applications with the iPhone SDK 本电子书共295页 Amazon超级畅销书 大量未公开的绝技,带你深入iPhone开发秘境 任务驱动,丰富的实战代码,让你...

    iPad应用开发实践指南

    详细讲解了PhotoWheel的完整开发过程以及所需的理论知识,具体包括创建主从复合应用程序、使用表格视图、用视图工作、使用触屏手势、添加照片、数据持久化、故事板、视图控制器、创建照片浏览器、支持设备旋转、用...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与...

    第三代移动WEB内核小程序风口-逐浪CMS2 x3.9.3全面发布

    ■增加:扩展邮件发送模块,会记录邮件模板,与发送日志(目标用户是否成功接收) ■增加:新建|修改标签,数据表选择--支持下拉筛选 ■扩展:能力中心--增加[@我的]筛选 ■扩展:增加用户列表JS插件 ■扩展:优化了AJAX单...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与...

    Google Android SDK开发范例大全(第3版) 1/5

    6.7 有来电,发送邮件通知 6.8 存储卡剩余多少容量 6.9 访问本机内存与存储卡 6.10 实现可定时响起的闹钟 6.11 黑名单来电自动静音 6.12 手机翻背面即静音振动 6.13 指定时间置换桌面背景 6.14 判断发送短信后的状态...

    Google Android SDK开发范例大全(第3版) 4/5

    6.7 有来电,发送邮件通知 6.8 存储卡剩余多少容量 6.9 访问本机内存与存储卡 6.10 实现可定时响起的闹钟 6.11 黑名单来电自动静音 6.12 手机翻背面即静音振动 6.13 指定时间置换桌面背景 6.14 判断发送短信后的状态...

    Google Android SDK开发范例大全(第3版) 3/5

    6.7 有来电,发送邮件通知 6.8 存储卡剩余多少容量 6.9 访问本机内存与存储卡 6.10 实现可定时响起的闹钟 6.11 黑名单来电自动静音 6.12 手机翻背面即静音振动 6.13 指定时间置换桌面背景 6.14 判断发送短信后的状态...

    Google Android SDK开发范例大全(第3版) 5/5

    6.7 有来电,发送邮件通知 6.8 存储卡剩余多少容量 6.9 访问本机内存与存储卡 6.10 实现可定时响起的闹钟 6.11 黑名单来电自动静音 6.12 手机翻背面即静音振动 6.13 指定时间置换桌面背景 6.14 判断发送短信后的状态...

    《Google Android SDK开发范例大全(第3版)》.pdf

    6.7 有来电,发送邮件通知 324 6.8 存储卡剩余多少容量 326 6.9 访问本机内存与存储卡 329 6.10 实现可定时响起的闹钟 335 6.11 黑名单来电自动静音 340 6.12 手机翻背面即静音振动 343 6.13 ...

Global site tag (gtag.js) - Google Analytics