开发者社区> 问答> 正文

即将开发一款iOS邮箱客户端, 大家有什么推荐的资料以供参考?o(╯□╰)o

就是想先行了解一些关于邮箱这一块的相关知识, 邮件收发的原理什么的?求大神解答

展开
收起
a123456678 2016-07-27 15:17:59 2492 0
1 条回答
写回答
取消 提交回答
  • MFMailComposeViewControllerDelegate
    #import <MessageUI/MessageUI.h>
    sendMailViewController.m文件的实现:
    
    - (void)viewDidLoad
    {
        UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
        button.frame = CGRectMake(0, 40, 320, 50);
        [button setTitle: @"Mail" forState: UIControlStateNormal];
        [button addTarget: self action: @selector(sendEMail) forControlEvents: UIControlEventTouchUpInside];
        [self.view addSubview: button];
    }
    
    - (void) alertWithTitle: (NSString *)_title_ msg: (NSString *)msg 
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:_title_ 
                                                        message:msg 
                                                       delegate:nil 
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        [alert release];
    } 
    
    //点击按钮后,触发这个方法
    -(void)sendEMail 
    {
        Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    
        if (mailClass != nil)
        {
            if ([mailClass canSendMail])
            {
                [self displayComposerSheet];
            } 
            else
            {
                [self launchMailAppOnDevice];
            }
        } 
        else
        {
            [self launchMailAppOnDevice];
        }    
    }
    //可以发送邮件的话
    -(void)displayComposerSheet 
    {
        MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];
    
        mailPicker.mailComposeDelegate = self;
    
        //设置主题
        [mailPicker setSubject: @"eMail主题"];
    
        // 添加发送者
        NSArray *toRecipients = [NSArray arrayWithObject: @"first@example.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 = @"eMail 正文";
        [mailPicker setMessageBody:emailBody isHTML:YES];
    
        [self presentModalViewController: mailPicker animated:YES];
        [mailPicker release];
    }
    -(void)launchMailAppOnDevice
    {
        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]];
    }
    - (void)mailComposeController:(MFMailComposeViewController *)controller 
              didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
    {
        NSString *msg;
    
        switch (result) 
        {
            case MFMailComposeResultCancelled:
                msg = @"邮件发送取消";
                break;
            case MFMailComposeResultSaved:
                msg = @"邮件保存成功";
                [self alertWithTitle:nil msg:msg];
                break;
            case MFMailComposeResultSent:
                msg = @"邮件发送成功";
                [self alertWithTitle:nil msg:msg];
                break;
            case MFMailComposeResultFailed:
                msg = @"邮件发送失败";
                [self alertWithTitle:nil msg:msg];
                break;
            default:
                break;
        }
    
        [self dismissModalViewControllerAnimated:YES];
    }
    2019-07-17 20:00:39
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
手淘iOS性能优化探索 立即下载
From Java/Android to Swift iOS 立即下载
深入剖析iOS性能优化 立即下载

相关实验场景

更多