ios发送邮件

 

本文转载至  http://www.cnblogs.com/edgarli/archive/2013/07/26/3216876.html

方法一:

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:@"[email protected]"]];
//    [mc setCcRecipients:[NSArray arrayWithObject:@"[email protected]"]];
//    [mc setBccRecipients:[NSArray arrayWithObject:@"[email protected]"]];
    [mc setMessageBody:@"Hello,slick!!!\n\nCome here, I need you!" isHTML:NO];
    
    // 添加一张图片
    UIImage *addPic = [UIImage imageNamed: @"[email protected]"];
    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: @"[email protected]"];   
    [mailUrl appendFormat:@"mailto:%@", [toRecipients componentsJoinedByString:@","]];   
    //添加抄送   
    NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil];     
    [mailUrl appendFormat:@"?cc=%@", [ccRecipients componentsJoinedByString:@","]];   
    //添加密送   
    NSArray *bccRecipients = [NSArray arrayWithObjects:@"[email protected]", 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]];     
}  

即 [[UIApplicationsharedApplicationopenURL:[NSURLURLWithString:@"mailto:[email protected]?cc=[email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"]];

 

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

ios发送邮件,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。