iOS:实现邮件和短信发送的简单示例

简介:

发送邮件
1.导入库文件:MessageUI.framework

2.引入头文件
3.实现代理<MFMailComposeViewControllerDelegate> 和 <UINavigationControllerDelegate>
代码示例:

复制代码
- (void)didClickSendEmailButtonAction{  
  
    if ([MFMailComposeViewController canSendMail] == YES) {  
          
        MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init];  
        //  设置代理(与以往代理不同,不是"delegate",千万不能忘记呀,代理有3步)  
        mailVC.mailComposeDelegate = self;  
        //  收件人  
        NSArray *sendToPerson = @[@"humingtao2014@gmail.com"];  
        [mailVC setToRecipients:sendToPerson];  
        //  抄送  
        NSArray *copyToPerson = @[@"humingtao2013@126.com"];  
        [mailVC setCcRecipients:copyToPerson];  
        //  密送  
        NSArray *secretToPerson = @[@"563821250@qq.com"];  
        [mailVC setBccRecipients:secretToPerson];  
        //  主题  
        [mailVC setSubject:@"hello world"];  
        [self presentViewController:mailVC animated:YES completion:nil];  
        [mailVC setMessageBody:@"魑魅魍魉,哈哈呵呵嘿嘿霍霍" isHTML:NO];  
    }else{  
      
        NSLog(@"此设备不支持邮件发送");  
      
    }  
  
}  
  
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{  
  
    switch (result) {  
        case MFMailComposeResultCancelled:  
            NSLog(@"取消发送");  
            break;  
        case MFMailComposeResultFailed:  
            NSLog(@"发送失败");  
            break;  
        case MFMailComposeResultSaved:  
            NSLog(@"保存草稿文件");  
            break;  
        case MFMailComposeResultSent:  
            NSLog(@"发送成功");  
            break;  
        default:  
            break;  
    }  
      
    [self dismissViewControllerAnimated:YES completion:nil];  
}  
  
//  系统发送,模拟器不支持,要用真机测试  
- (void)didClickSendSystemEmailButtonAction{  
  
    NSURL *url = [NSURL URLWithString:@"humingtao2014@gmail.com"];  
    if ([[UIApplication sharedApplication] canOpenURL:url] == YES) {  
          
        [[UIApplication sharedApplication] openURL:url];  
      
    }else{  
      
        NSLog(@"此设备不支持");  
    }  
  
} 
复制代码

发送短信
前面三步引入配置和邮件发送一样  

复制代码
//  调用系统API发送短信  
- (void)didClickSendMessageButtonAction{  
      
    if ([MFMessageComposeViewController canSendText] == YES) {  
          
        MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc] init];  
        //  设置代理<MFMessageComposeViewControllerDelegate>  
        messageVC.messageComposeDelegate = self;  
        //  发送To Who  
        messageVC.recipients = @[@"18757289870"];  
        messageVC.body = @"hello world";  
        [self presentViewController:messageVC animated:YES completion:nil];  
          
    }else{  
      
        NSLog(@"此设备不支持");  
    }  
}  
  
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{  
      
    switch (result) {  
        case MessageComposeResultCancelled:  
            NSLog(@"取消发送");  
            break;  
        case MessageComposeResultFailed:  
            NSLog(@"发送失败");  
            break;  
        case MessageComposeResultSent:  
            NSLog(@"发送成功");  
            break;  
        default:  
            break;  
    }  
      
    [self dismissViewControllerAnimated:YES completion:nil];  
  
}  
  
//  调用系统应用程序发送消息  
- (void)didClickSendMessage2ButtonAction{  
      
    NSURL *url = [NSURL URLWithString:@"sms:18656348970"];  
    if ([[UIApplication sharedApplication] canOpenURL:url] == YES) {  
          
        [[UIApplication sharedApplication] openURL:url];  
          
    }else{  
      
        NSLog(@"失败");  
    }  
  
} 
复制代码

 

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5127992.html ,如需转载请自行联系原作者
相关文章
|
安全 数据安全/隐私保护 iOS开发
iOS小技能:【发红包】使用tweak和lua脚本结合进行实现
我们开发的大部分越狱程序,都是编译成动态链接库(`例如:介绍的越狱程序(Tweak)开发,就是动态链接库。`),然后通过越狱平台的MobileSubstrate(iOS7上叫CydiaSubstrate)来加载进入目标程序(Target),通过对目标程序的挂钩(Hook),来实现相应的功能。
266 0
|
移动开发 JavaScript weex
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
221 0
|
存储 数据处理 iOS开发
iOS开发-本地推送实现方法和数据处理方案(二)
iOS开发-本地推送实现方法和数据处理方案(二)
171 0
|
存储 数据处理 iOS开发
iOS开发-本地推送实现方法和数据处理方案(一)
iOS开发-本地推送实现方法和数据处理方案(一)
211 0
|
iOS开发
iOS开发 - 不通过import引入类名实现push或present
iOS开发 - 不通过import引入类名实现push或present
77 0
|
Android开发 iOS开发
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
356 0
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
|
存储 安全 iOS开发
iOS开发 - 继udid,Mac地址等一系列唯一标识无效后,如何用KeyChain来实现设备唯一性
iOS开发 - 继udid,Mac地址等一系列唯一标识无效后,如何用KeyChain来实现设备唯一性
401 0
iOS开发 - 继udid,Mac地址等一系列唯一标识无效后,如何用KeyChain来实现设备唯一性
|
Swift 数据安全/隐私保护 iOS开发
iOS开发 - swift通过Alamofire实现https通信
iOS开发 - swift通过Alamofire实现https通信
351 0
iOS开发 - swift通过Alamofire实现https通信
|
开发者 iOS开发
iOS开发 - 用AFNetworking实现https单向验证,双向验证
iOS开发 - 用AFNetworking实现https单向验证,双向验证
345 0
iOS开发 - 用AFNetworking实现https单向验证,双向验证
|
iOS开发
iOS小技能:自动布局实现兄弟控件N等分且宽高比例是1:N(xib 上实现)
本文为 iOS视图约束专题的第三篇:xib上使用自动布局教程
142 0