iOS应用内发送邮件详解手机开发

iPhone API已经提供了系统写邮件界面的接口,使用MFMailComposeViewController,用来显示界面.   
项目中需要添加MessageUi.framework。头文件加入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];   
;   
;   
}    
//点击按钮后,触发这个方法   
-(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: @"[email protected]"];   
//NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil];   
//NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]", 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:[email protected]&subject=my email!";   
//@"mailto:[email protected][email protected],[email protected]&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];   
}  

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5149.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论