2

私は、添付ファイル付きのメッセージを送信するために電子メールクライアントをトリガーしたい場所からiphoneアプリケーション(iOS 4.2)を実装しています。メールアプリをトリガーするためにクラス NSURL と組み合わせて uri スキームを効果的に使用できましたが、画像を添付できるかどうか疑問に思っていました。mailto:whoever@wherever.org?subject=sthg&body=sthgelse&attachment=/path/to/file を試しましたが、添付ファイルは含まれていません。iPhone アプリケーションがサンドボックス化されていることはわかっているため、イメージがアプリケーション バンドルにあるため、電子メール ユーティリティがイメージへのパスにアクセスできなかった可能性があります。一方、私は自分の画像をフォト マネージャーで管理することを検討していました。(1) この方法で添付ファイルを含める方法はありますか? (2)もしそうなら、アプリまたはフォト クライアントから画像を参照することはできますか? mailto RFC で添付ファイルの引数を見つけることができませんでしたが、Apple がこれを実現する方法を提供している可能性があります。

よろしくお願いいたします。

ルイス

4

3 に答える 3

3

MFMailComposeViewController はそれを行うことができます。使用例を以下に示します。MessageUI.framework を忘れずに追加してください。

MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init];
email.mailComposeDelegate = self;
[email setSubject:@"Whatever"];

// Set up recipients
NSArray recipients = [NSArray arrayWithObject:@"whoever@wherever.org"]; 

[email setToRecipients:recipients];


// Attach an image to the email
UIImage *attachment = ...;
NSData *data = UIImagePNGRepresentation(attachment);
[email addAttachmentData:myData mimeType:@"image/png" fileName:@"ok.png"];

// Fill out the email body text
NSString *emailBody = @"test mail";
[email setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];

[email release];
于 2012-01-13T01:22:51.097 に答える
0

アカウント MFMailComposeViewController を持っていない場合、単純にクラッシュします。canSendMailはい、結果 NO(!) で最初に呼び出すことができます。次に何をしますか? 答えは、「mailto:」を使用することです。アカウントを作成するためのポップアップ ダイアログが表示されます。

于 2015-01-21T17:23:11.907 に答える
0

mailto:URL スキームを使用する代わりに、添付ファイルを追加できるMFMailComposeViewControllerを使用する必要があります。また、使用してもアプリから離れないという利点もあります。

于 2012-01-12T11:06:46.230 に答える