zoukankan      html  css  js  c++  java
  • ios发送邮件

    方法一:

    1.需要引入库MessageUI.framework

    #import <MessageUI/MessageUI.h>

    #import<MessageUI/MFMailComposeViewController.h>

     

    2.@interface ViewController : UIXXXXXViewController <..., MFMailComposeViewControllerDelegate>  

       @end  

     

    3.发送执行代码。事先验证相关支持。 

        Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
        if (!mailClass) {
            UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"发送邮件"
                                                             message:@"当前系统版本不支持应用内发送邮件功能,您可以使用mailto方法代替"
                                                            delegate:self
                                                   cancelButtonTitle:@"我知道啦"
                                                   otherButtonTitles: nil] autorelease];
            [alert show];
            
            return;
        }
        if (![mailClass canSendMail]) {
            UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"发送邮件"
                                                             message:@"用户没有设置邮件账户"
                                                            delegate:self
                                                   cancelButtonTitle:@"我知道啦"
                                                   otherButtonTitles: nil] autorelease];
            [alert show];
            return;
        }
        
        MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
        mc.mailComposeDelegate = self;
        [mc setSubject:@"Hello, World!"];
        [mc setToRecipients:[NSArray arrayWithObject:@"xxxxx@163.com"]];
    //    [mc setCcRecipients:[NSArray arrayWithObject:@"xxxxx@163.com"]];
    //    [mc setBccRecipients:[NSArray arrayWithObject:@"secret@gmail.com"]];
        [mc setMessageBody:@"Hello,slick!!!
    
    Come here, I need you!" isHTML:NO];
        
        // 添加一张图片
        UIImage *addPic = [UIImage imageNamed: @"Icon@2x.png"];
        NSData *imageData = UIImagePNGRepresentation(addPic);            // png
        [mc addAttachmentData: imageData mimeType: @"" fileName: @"Icon.png"];
        
        //添加一个pdf附件
        NSString *file = [self fullBundlePathFromRelativePath:@"高质量C++编程指南.pdf"];
        NSData *pdf = [NSData dataWithContentsOfFile:file];
        [mc addAttachmentData: pdf mimeType: @"" fileName: @"高质量C++编程指南.pdf"];
        
        [self presentViewController:mc animated:YES completion:nil];
        [mc release];

     回调函数:

    - (void)mailComposeController:(MFMailComposeViewController*)controller
              didFinishWithResult:(MFMailComposeResult)result
                            error:(NSError*)error {
        switch (result)
        {
            case MFMailComposeResultCancelled:
                NSLog(@"Mail send canceled...");
                break;
            case MFMailComposeResultSaved:
                NSLog(@"Mail saved...");
                break;
            case MFMailComposeResultSent:
                NSLog(@"Mail sent...");
                break;
            case MFMailComposeResultFailed:
                NSLog(@"Mail send errored: %@...", [error localizedDescription]);
                break;
            default:
                break;
        }
        [self dismissViewControllerAnimated:YES completion:nil];
    }

    方法二:

    url方式

    #pragma mark - 使用系统邮件客户端发送邮件   
    -(void)launchMailApp   
    {     
        NSMutableString *mailUrl = [[[NSMutableString alloc]init]autorelease];   
        //添加收件人   
        NSArray *toRecipients = [NSArray arrayWithObject: @"first@example.com"];   
        [mailUrl appendFormat:@"mailto:%@", [toRecipients componentsJoinedByString:@","]];   
        //添加抄送   
        NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];     
        [mailUrl appendFormat:@"?cc=%@", [ccRecipients componentsJoinedByString:@","]];   
        //添加密送   
        NSArray *bccRecipients = [NSArray arrayWithObjects:@"fourth@example.com", nil];     
        [mailUrl appendFormat:@"&bcc=%@", [bccRecipients componentsJoinedByString:@","]];   
        //添加主题   
        [mailUrl appendString:@"&subject=my email"];   
        //添加邮件内容   
        [mailUrl appendString:@"&body=<b>email</b> body!"];   
        NSString* email = [mailUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];     
        [[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]];     
    }  

    即 [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"]];

     

    还可使用skpsmtpmessage这样的第三方控件。

     

  • 相关阅读:
    洛谷 P5057 [CQOI2006]简单题 题解
    洛谷 P3368 【模板】树状数组 2 题解
    洛谷 P3374 【模板】树状数组 1 题解
    洛谷 P2023 [AHOI2009]维护序列 题解
    洛谷 P2253 好一个一中腰鼓! 题解
    求最长不下降/上升/下降/不上升子序列
    [SQL Server]Index/deadlock
    Ubuntu 14.04下从源码安装qt4.x
    Ubuntu系统下Import cv2提示no modules ...错误
    Ubuntu 14.04下安装CUDA8.0
  • 原文地址:https://www.cnblogs.com/edgarli/p/3216876.html
Copyright © 2011-2022 走看看