簡體   English   中英

如何從WinRT / Windows應用商店應用程序發送電子郵件?

[英]How do I send an email from a WinRT/Windows Store application?

我正在開發Windows應用商店應用程序(Windows 8)。

我需要根據存儲在應用程序數據中的數據和地址發送電子郵件,而無需用戶輸入數據或地址。

實現它的正確/簡單方法是什么?

EitanB

你可以試試

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);

正確的方法是使用共享。 您的應用應該創建HTML文檔或文本並共享它。 用戶將從共享魅力中選擇郵件,HTML /文本將成為電子郵件的正文。

有關詳情,請參閱此處...

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

這是用於mailto:link的正確語法(與上面的其他示例不同,mailto:不正確..)

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

mailto:方法的問題是,如果用戶沒有與mailto關聯的客戶端程序:什么都不會發生。

最可靠的方法是使用某種Web服務或WCF服務。 在Windows 8上考慮“正確”方式時使用Share Charm並不是最好的,因為用戶可能仍然沒有安裝電子郵件客戶端,例如,如果他們依賴gmail.com來發送電子郵件。

如果您正在開發Universal WinRT Windows Phone應用程序,則可以使用“Windows.ApplicationModel.Email.EmailMessage”命名空間,因為“Microsoft.Phone.Tasks.EmailComposeTask”命名空間不適用於WinRT應用程序。

然后,使用此代碼創建並啟動新電子郵件。

// 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);

我希望它能解決你(或其他開發人員)的問題。

問候。

始終可以連接到SMTP服務器並發出HELO,MAIL,RCPT等命令。當然,您需要連接到SMTP服務器。 我在公司內部網上使用它來發送電子郵件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM