发送系统邮件和短信

导入系统框架:

在需要的地方导入头文件:

#import <MessageUI/MessageUI.h>

然后遵守协议(邮件和信息)

<
MFMailComposeViewControllerDelegate, 
MFMessageComposeViewControllerDelegate
>

创建2个按钮:(发送邮件和信息)

UIButton *emailBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    emailBtn.frame = CGRectMake(100, 100, 100, 100);
    emailBtn.backgroundColor = [UIColor purpleColor];
    [self.view addSubview:emailBtn];
    
    [emailBtn addTarget:self action:@selector(emailButtonAction:) forControlEvents:UIControlEventTouchUpInside];
    
    
    UIButton *msgBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    msgBtn.frame = CGRectMake(100, 300, 100, 100);
    msgBtn.backgroundColor = [UIColor purpleColor];
    [self.view addSubview:msgBtn];
    
    [msgBtn addTarget:self action:@selector(msgButtonAction:) forControlEvents:UIControlEventTouchUpInside];
    

按钮实现方法如下:

#pragma mark -- 发送邮件按钮实现方法
- (void)emailButtonAction:(UIButton *) sender {
    // 判断是否可以发送邮件
    if ([MFMailComposeViewController canSendMail]) {
        // 创建邮件视图控制器
        MFMailComposeViewController *picker =[[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self; // 设置代理
        [picker setSubject:@"haha"]; // 设置主题
        [picker setToRecipients:@[@"898@qq.com"]]; // 设置收件人 可以多人发送
        [picker setCcRecipients:@[@"794@qq.com"]]; // 设置抄送对象 同样可以多人发送
        [picker setMessageBody:@"哈哈哈哈哈" isHTML:YES]; // 设置发送的内容
        // 推出视图
        [self presentViewController:picker animated:YES completion:nil];
        
    } else {
        NSLog(@"无法发送短信");
    }
}
#pragma mark -- 实现邮件协议方法
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    // 判断发送状态
    switch (result) {
        case MFMailComposeResultCancelled:
            NSLog(@"取消发送");
            break;
        case MFMailComposeResultFailed:
            NSLog(@"邮件发送失败");
            NSLog(@"错误信息:%@", error);
            break;
        case MFMailComposeResultSaved:
            NSLog(@"邮件保存");
            break;
        case MFMailComposeResultSent:
            NSLog(@"邮件发送成功");
            break;
        default:
            break;
    }
    [self dismissViewControllerAnimated:YES completion:nil];
}
#pragma mark -- 发送信息按钮实现方法
- (void)msgButtonAction:(UIButton *) sender {
    // 判断是否可以发送短信
    if ([MFMessageComposeViewController canSendText]) {
        // 可以发送短信
        // 创建短信视图控制器
        MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
        picker.messageComposeDelegate = self; // 设置代理
        picker.recipients = @[@"183310000747"]; // 设置收信人 收件人是个数组,所有我们可以实现群发
        picker.body = @"这是一条短信息"; // 设置信息内容
        // 打开短信功能
        [picker presentViewController:picker animated:YES completion:nil];
        
    } else {
        NSLog(@"不可以发送短信");
    }
}
#pragma mark - MFMessageComposeViewControllerDelegate Methods
- (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];
}

OK......

原文地址:https://www.cnblogs.com/LzwBlog/p/5768414.html