• 发送系统邮件和短信


    导入系统框架:

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

    #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......

  • 相关阅读:
    CVE-2020-0796 SMBv3 RCE漏洞检测+复现
    Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938
    Web for pentester_writeup之XML attacks篇
    Web for pentester_writeup之LDAP attacks篇
    PhpStudy2018后门漏洞预警及漏洞复现&检测和执行POC脚本
    2016ACM/ICPC亚洲区沈阳站 E
    CodeForces 599C Day at the Beach(贪心)
    CodeForces 652C Foe Pairs(思维题)
    Codeforces 557D. Vitaly and Cycle(二分图判断)
    poj 1091跳蚤(容斥定理+质因子分解)
  • 原文地址:https://www.cnblogs.com/LzwBlog/p/5768414.html
Copyright © 2020-2023  润新知