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:@"xxxxx@163.com"]];
//    [mc setCcRecipients:[NSArray arrayWithObject:@"xxxxx@163.com"]];
//    [mc setBccRecipients:[NSArray arrayWithObject:@"secret@gmail.com"]];
    [mc setMessageBody:@"Hello,slick!!!\n\nCome 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]];     
}  
复制代码

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

 

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

posted @ 2014-07-02 13:29  天牛  阅读(198)  评论(0编辑  收藏  举报