12

私はWindowsストアアプリケーション(Windows 8)を開発しています。

アプリケーションデータに保存されているデータとアドレスに基づいて、ユーザーがデータやアドレスを入力しなくてもメールを送信する必要があります。

それを実装するための正しい/簡単な方法は何でしょうか?

EitanB

4

5 に答える 5

30

あなたはで試すことができます

var mailto = new Uri("mailto:?to=recipient@example.com&subject=The subject of an email&body=Hello from a Windows 8 Metro app."); 
await Windows.System.Launcher.LaunchUriAsync(mailto);
于 2012-10-04T17:12:11.643 に答える
9

正しい方法は、共有を使用することです。アプリはHTMLドキュメントまたはテキストを作成して共有する必要があります。ユーザーは共有チャームからメールを選択し、HTML/テキストがメールの本文になります。

詳細については、こちらをご覧ください...

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh973055.aspx

于 2012-10-04T19:42:09.020 に答える
6

これは、mailto:リンクに使用する正しい構文です(上記の他のmailto:の例とは異なり、正しくありません。)

var mailto = new Uri("mailto:yourname@email.com?subject=" + subject + "&body=" + body);
await Launcher.LaunchUriAsync(mailto);

mailto:メソッドの問題は、ユーザーがmailto:に関連付けられたクライアントプログラムを持っていない場合、何も起こらないことです。

使用するのに最も信頼できる方法は、ある種のWebサービスまたはWCFサービスです。Windows 8で「正しい」方法と見なされているときに共有チャームを使用することは、ユーザーがまだメールクライアントをインストールしていない可能性があるため(たとえば、メールをgmail.comに依存している場合)、必ずしも最善ではありません。

于 2014-09-03T03:44:31.273 に答える
3

Universal WinRT Windows Phoneアプリケーションを開発している場合は、「Microsoft.Phone.Tasks.EmailComposeTask」名前空間がWinRTアプリケーションで機能しないため、「Windows.ApplicationModel.Email.EmailMessage」名前空間を使用できます。

次に、このコードを使用して、新しい電子メールを作成して起動します。

// Create your new email message.
var em = new EmailMessage() ;

// Add as much EmailRecipient in it as you need using the following method.
em.To.Add(new EmailRecipient("yourname@yourdomain.com"));
em.Subject = "Your Subject...";
em.Body = "Your email body...";
// You can add an attachment that way.
//em.Attachments.Add(new EmailAttachment(...);

// Show the email composer.
await EmailManager.ShowComposeNewEmailAsync(em);

それがあなた(または他の開発者)の問題を解決することを願っています。

よろしく。

于 2014-10-01T12:59:25.743 に答える
1

SMTPサーバーに接続して、HELO、MAIL、RCPTなどのコマンドを発行することはいつでも可能です。もちろん、接続するにはSMTPサーバーが必要です。これを企業のイントラネットで使用してメールを送信します。

于 2012-10-04T17:13:55.460 に答える