iOS開発——メール送信
4841 ワード
文:UniverCoreオリジナルブログを転載する場合は、ハイパーリンクで文章を表記してください. 元の出所、作者の情報と本声明.http://blog.csdn.net/univcore/article/details/15028519
iOS開発では、メールを送信する機能を適用するには様々な方法があります.本論文で紹介したメール送信機能は、Message UI Framewarkによって提供され、このフレームワークはiPhone SDKの中で最も簡単なフレームワークである.クラス、ビューコントローラ、プロトコールからなります.
直感的にデモンストレーションするために、Step byを通します. Stepのデモでこの方法の基本的な使い方を説明します.
まず、Single Viewのサンプルアイテムを作成します.ここで、Mail System DemoというSingle Viewプロジェクトを作成しました.その後、View Controllerに対応するxibにボタンを追加し、このボタンの応答方法を実現するために、方法の内容は一時的に空にしてもいいです.後でメール送信方法を呼び出す文をこのボタンの方法に書き込みます.
次に、先に紹介したように、メール送信の機能はMessage UI Frame eborkによって提供されていますので、Buil PhisesにMessage UID.frame eworkフレームを追加します.その後、View Controller.hファイルに次のコードを入れ、ヘッダファイルを導入し、MFMail Compseview Controller Delegateプロトコルを採用する.
この方法はいずれも折り返しられます.
この方法の優れた長所は簡単で便利で、機能も全面的で、ほとんどのアプリの需要を満たすことができます.もちろん、それは明らかに劣勢があります.iOSシステムは私たちのためにメールのUIを提供してくれましたが、私たちは全く注文できません.これはそれらのオーダーを自分のスタイルにしたAppを見ていて、しりごみします.このように使うと、間違いなく目立ってしまうからです.
iOS開発では、メールを送信する機能を適用するには様々な方法があります.本論文で紹介したメール送信機能は、Message UI Framewarkによって提供され、このフレームワークはiPhone SDKの中で最も簡単なフレームワークである.クラス、ビューコントローラ、プロトコールからなります.
直感的にデモンストレーションするために、Step byを通します. Stepのデモでこの方法の基本的な使い方を説明します.
まず、Single Viewのサンプルアイテムを作成します.ここで、Mail System DemoというSingle Viewプロジェクトを作成しました.その後、View Controllerに対応するxibにボタンを追加し、このボタンの応答方法を実現するために、方法の内容は一時的に空にしてもいいです.後でメール送信方法を呼び出す文をこのボタンの方法に書き込みます.
次に、先に紹介したように、メール送信の機能はMessage UI Frame eborkによって提供されていますので、Buil PhisesにMessage UID.frame eworkフレームを追加します.その後、View Controller.hファイルに次のコードを入れ、ヘッダファイルを導入し、MFMail Compseview Controller Delegateプロトコルを採用する.
#import <MessageUI/MFMailComposeViewController.h>
@interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>
View Controller.mファイルでは、以下のようにメールを送るコア方法を実現します.- (void)sendEmail
{
MFMailComposeViewController *sendMailViewController = [[MFMailComposeViewController alloc] init];
sendMailViewController.mailComposeDelegate = self;
//
[sendMailViewController setSubject:@"Test Message"];
/*
* ,
*/
//
[sendMailViewController setToRecipients:[NSArray arrayWithObject:@"[email protected]"]];
// CC
[sendMailViewController setCcRecipients:[NSArray arrayWithObject:@"[email protected]"]];
// BCC
[sendMailViewController setBccRecipients:[NSArray arrayWithObject:@"[email protected]"]];
/*
* ,
*/
//
[sendMailViewController setMessageBody:@"Hello World!
Is everything OK?" isHTML:NO];
// HTML (HTML )
//[mailVC setMessageBody:@"<HTML><B>Hello World!</B><BR/>Is everything OK?</HTML>" isHTML:YES];
//
NSString *path = [[NSBundle mainBundle] pathForResource:@"feedback" ofType:@"png"];
NSData *data = [NSData dataWithContentsOfFile:path];
[sendMailViewController addAttachmentData:data mimeType:@"image/png" fileName:@"feedback"];
//
[self presentViewController:sendMailViewController animated:YES completion:nil];
}
その後、私たちはViewController.mファイルにMFMail Compseview Controller Delegateプロトコルにおける方法を実現し、ユーザが送信するかどうか、キャンセルするかにかかわらず、システムがメール送信を実現できるかどうかにかかわらずこの方法はいずれも折り返しられます.
- (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 sent Failed.");
break;
}
default:
break;
}
[self dismissViewControllerAnimated:YES completion:nil];
}
最後に、ボタンの応答方法でメールの送信方法を呼び出します.ここでは、デバイスがメールで送信できるかどうかの判断が必要です.もしユーザーがメールクライアントにアカウントを設定しているなら、私たちは直接にメールを送る方法を呼び出します.そうでないと、私たちは先に[UAppliation sharedAppliation]を使います. オプンURL:]メソッドは、システムのメールクライアントをロードし、ユーザーに先にメールボックスの構成を行わせる.- (IBAction)sendEmailBtnPressed:(id)sender
{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail])
{
[self sendEmail]; //
}
else {
[self launchMailAppOnDevice]; //
}
}
else {
[self launchMailAppOnDevice]; //
}
}
システムメールクライアントを呼び出してメールボックスの設定を行う方法は以下の通りです.-(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]];
}
ここでメールを送る機能を実現するコードは全部完成しました.今すぐプログラムを実行してテストしてみてください.この方法の優れた長所は簡単で便利で、機能も全面的で、ほとんどのアプリの需要を満たすことができます.もちろん、それは明らかに劣勢があります.iOSシステムは私たちのためにメールのUIを提供してくれましたが、私たちは全く注文できません.これはそれらのオーダーを自分のスタイルにしたAppを見ていて、しりごみします.このように使うと、間違いなく目立ってしまうからです.