iPhone How-to:如何发送邮件
2011-04-11 18:02
555 查看
iPhone提供了内嵌的Mail应用以支持电子邮件相关操作,此外还提供了MFMailComposeViewController以实现了在当前应用内编辑和发送邮件。使用内嵌的Mail应用还是MFMailComposeViewController就取决于实际的需求了,实现方法分别是:
调用内嵌Mail应用
- (void) sendEmailTo:(NSString *)to withSubject:(NSString *)subject withBody:(NSString *)body {
NSString *mailString = [NSString stringWithFormat:@"mailto:?to=%@&subject=%@&body=%@",
[to stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
[subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
[body stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];
}
需要注意的是这里使用了NSString的stringByAddingPercentEscapesUsingEncoding接口,其作用就是在URL字符串中进行特殊字符的替换,比如将空格替换成%20之类的。
使用MFMailComposeViewController支持应用内邮件发送
- (IBAction)sendMail{
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"In app email..."];
[controller setMessageBody:@"...a tutorial from mobileorchard.com" isHTML:NO];
[self presentModalViewController:controller animated:YES];
[controller release];
}
此外还需要实现mailComposeController:didFinishWithResult:error:的协议以进行发送成功或者失败后的处理:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
...
[self dismissModalViewControllerAnimated:YES];
}
调用内嵌Mail应用
- (void) sendEmailTo:(NSString *)to withSubject:(NSString *)subject withBody:(NSString *)body {
NSString *mailString = [NSString stringWithFormat:@"mailto:?to=%@&subject=%@&body=%@",
[to stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
[subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
[body stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];
}
需要注意的是这里使用了NSString的stringByAddingPercentEscapesUsingEncoding接口,其作用就是在URL字符串中进行特殊字符的替换,比如将空格替换成%20之类的。
使用MFMailComposeViewController支持应用内邮件发送
- (IBAction)sendMail{
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"In app email..."];
[controller setMessageBody:@"...a tutorial from mobileorchard.com" isHTML:NO];
[self presentModalViewController:controller animated:YES];
[controller release];
}
此外还需要实现mailComposeController:didFinishWithResult:error:的协议以进行发送成功或者失败后的处理:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
...
[self dismissModalViewControllerAnimated:YES];
}
相关文章推荐
- [HOW TO]如何在iPhone应用程序中发送邮件
- How to send mail using VBScript & JMail - SourceCode - 如何用VBScript & JMail 发送邮件 - 源码
- How to send mail using C++ & CAsyncSocket - SourceCode - 用C++ & CAsyncSocket 如何发送邮件 - 源码 - HackerJLY
- How to send mail using any email account through Foxmail ? - Foxmail 6 漏洞,如何通过 Foxmail 用任意邮件账号发送邮件?
- iPhone How-to:如何清除控件的Target-Action
- iPhone How-to:如何移除发布版本中的NSLog输出
- iPhone How-to:如何更改UISwitch的提示文本
- PHP发送邮件:如何自定义reply-to头部以及附件
- iPhone How-to:如何dump所有类
- 如何在iPhone应用程序中发送邮件
- iPhone How-to:如何在NSDictionary中存放Selector
- iPhone开发:如何阻止文件被iTunes和iCloud同步 How do I prevent files from being backed up to iCloud and iTunes?
- iPhone How-to:如何更改UISwitch的提示文本
- [How to] 如何开始iphone的程序开发.
- iPhone How-to:如何调整UIView的Z-Order
- iPhone How-to:如何调整UIView的Z-Order
- [Jsoup] 如何发送Json请求(how to send json by Jsoup)
- iPhone How-to:如何更改UISwitch的提示文本
- prjSendMailInUniversity - How to send email using VB & Winsock - 邮件发送接收程序 - VB6 + Winsock
- Android: How to share with Email (如何用邮件分享信息)