转自:http://blog.csdn.net/bl1988530/article/details/6597230
MFMailComposeViewController发送邮件的实例
- 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];
- [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
- {
- MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];
-
- mailPicker.mailComposeDelegate = self;
-
- //设置主题
- [mailPicker setSubject: @"eMail主题"];
-
- // 添加发送者
- NSArray *toRecipients = [NSArray arrayWithObject: @"first@example.com"];
- //NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];
- //NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com", 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:first@example.com&subject=my email!";
- //@"mailto:first@example.com?cc=second@example.com,third@example.com&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];
- }
分享到:
相关推荐
在iOS平台上,发送电子邮件是一项常见的任务,特别是在开发应用程序时,我们可能需要集成这样的功能以便用户能够轻松地分享内容或发送反馈。在这个“IOS 发送邮件 DEMO”中,我们将探讨如何在iOS应用中实现邮件发送...
本文将深入探讨如何在iOS应用中实现邮件发送功能,主要基于标题"iOS发送邮件"和描述中的信息,以及相关的标签"ios邮件"。 首先,我们要知道在iOS中发送邮件主要依赖于`MFMailComposeViewController`类,这是苹果...
在"02-发邮件"这个子文件中,可能包含了实现上述步骤的源代码文件,包括界面设计和事件处理。开发者可以通过查看和运行这个示例项目,更深入地了解如何在实际项目中集成邮件发送功能。记住,理解并遵循苹果的Human ...
总的来说,通过理解SMTP协议和使用合适的开源库,可以在iOS应用中实现自定义的邮件发送功能,满足项目的特定需求。在"MailComposer"这个示例项目中,你将找到具体实现这些功能的代码和步骤,这对于初学者和有经验的...
在iOS平台上,发送电子邮件主要通过使用MFMailComposeViewController类来实现。这个类是Apple的MessageUI框架的一部分,允许用户在应用程序内部撰写并发送邮件。在本文中,我们将深入探讨如何利用Objective-C或Swift...
"IOS 异常崩溃时发送邮件"这个主题正是关于如何在iOS应用出现异常时,自动捕获异常信息并通过电子邮件发送到指定地址,以便于调试。 首先,我们需要了解`NSSetUncaughtExceptionHandler`这个函数。它是Objective-C...
在iOS平台上,集成邮件发送功能是一项常见的需求,可以让用户直接在应用内发送电子邮件。通过调用系统的API,开发者可以轻松实现这一功能。本篇将详细讲解如何在iOS中利用Apple提供的MessageUI框架来实现邮件的发送...
在iOS平台上,实现发送邮件的功能通常需要利用`MFMailComposeViewController`类,这是Apple提供的一个邮件作成界面控制器。下面将详细介绍如何通过Objective-C代码来实现在iOS应用中发送邮件。 首先,在`...
例如,使用"SwiftMailer"库,你可以创建一个SMTP会话,设置发件人、收件人、主题和正文,然后发送邮件。这个过程涉及更多网络编程和邮件格式的知识,包括SMTP命令、Base64编码和MIME类型等。 在"MailDemo"源代码...
为了将这些信息发送给开发者,我们可以利用iOS内置的邮件功能。首先,确保你的应用有发送邮件的权限,这需要在`Info.plist`文件中添加`LSApplicationQueriesSchemes`键,并设置值为`"mailto"`。 接下来,我们可以...
在iOS开发中,使用MessageUI框架是实现应用内发送邮件功能的标准方式,尤其当需要添加附件时。MessageUI框架提供了一套易于使用的接口,使得开发者能够集成邮件发送功能,包括支持文本、图片、文档等附件。这个源码...
在iOS中,可以使用Apple提供的`MessageUI`框架来实现基本的邮件发送功能,但这并不足以构建一个完整的邮件客户端。对于更复杂的邮件收发功能,开发者通常会使用第三方库如`MailCore`或`MAPI`,它们提供了IMAP、POP3...
在iOS平台上,应用程序发送邮件的功能通常通过利用Apple提供的MFMailComposeViewController类来实现。这个类是MessageUI框架的一部分,允许用户在应用内直接撰写并发送邮件,前提是用户的iPhone已经在设置中配置了...
在iOS开发中,MessageUI框架是苹果提供的一套API,用于方便地集成发送邮件和短信的功能。本项目“MailTest”就是基于MessageUI框架实现的一个示例应用,它展示了如何在iOS应用中添加附件并发送电子邮件。以下是关于...
以上就是关于在iOS应用中封装打电话、发短信和发邮件功能的基本方法。通过这样的封装,你可以在项目中创建一个统一的工具类,提高代码复用性和维护性。不过,始终要确保遵循Apple的App Store审核指南,特别是关于...
- 在iOS 10及以上版本,你需要检查用户是否已经授予了发送邮件的权限,使用`MFMailComposeViewController`的`canSendMail`方法。如果没有权限,应提示用户设置。 7. **错误处理**: - 在整个过程中,可能出现各种...
iOS中,可以使用MessageUI框架,或者像MailCore2这样的第三方库来实现SMTP发送邮件的功能。 4. **MailCore2**:MailCore2是一个强大的邮件处理库,支持IMAP、POP和SMTP,提供Objective-C和C++接口,兼容iOS和macOS...
总结来说,iOS9提升了iPhone的多任务处理能力,使得打电话、发短信、写邮件和浏览网页变得更加流畅和高效。用户可以根据自己的需求灵活使用这些功能,提高日常工作效率。而这一切都集成在一个简洁易用的界面中,体现...
发送邮件在iOS中通常使用MFMailComposeViewController。同样,首先需要检查设备是否能发送邮件([MFMailComposeViewController canSendMail]),然后创建MFMailComposeViewController实例,设置邮件主题、正文、附件...
在iOS平台上,调用系统发邮件功能是一种常见的需求,它可以让用户通过应用程序直接发送电子邮件而无需离开应用。本文将深入探讨如何实现这个功能,并提供一个名为"MailDemo"的示例项目来帮助开发者理解。 首先,...