ios程序内发送邮件的代码

371 阅读1分钟

如下内容是关于ios程序内发送邮件的内容。 iPhone API已经提供了系统写邮件界面的接口,使用MFMailComposeViewController,用来显示界面.
项目中需要添加MessageUi.framework。头文件加入MFMailComposeViewControllerDelegate。#import <MessageUI/MessageUI.h>
sendMailViewController.m文件的实现:

  • (void)viewDidLoad
    {
    button.frame = CGRectMake(0, 40, 320, 50);
    [button setTitle: @"Mail" forState: UIControlStateNormal];
    [button addTarget: self action: @selector(sendEMail) forControlEvents: UIControlEventTouchUpInside];
    [self.view addSubview: button];
    }

{
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
{

mailPicker.mailComposeDelegate = self;  
  
[mailPicker setSubject: @"eMail主题"];  
  
[mailPicker setToRecipients: toRecipients];  
  
[mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"123.jpg"];  
  
[mailPicker setMessageBody:emailBody isHTML:YES];  
  
[self presentModalViewController: mailPicker animated:YES];  
[mailPicker release];  

}
-(void)launchMailAppOnDevice
{

email = [email stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];  
  
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]];  

}
{

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];  

}