2012-10-04 16 views

Odpowiedz

9

Prawidłowym sposobem byłoby użycie Udostępnianie. Twoja aplikacja powinna utworzyć dokument HTML lub tekst i udostępnić go. Użytkownik wybrałby Pocztę z zaklęć Udostępnij, a HTML/Tekst stałby się treścią e-maila.

Zobacz tutaj, aby uzyskać więcej informacji ...

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

+0

Problem z tym związany (nie w przypadku szczególnego przypadku wymienionego w pytaniu), jest, kiedy ja. sol. mieć przycisk opinii, nie mogę przekierować użytkownika do paska zaklęć. – jalgames

30

Można spróbować z

var mailto = new Uri("mailto:[email protected]&subject=The subject of an email&body=Hello from a Windows 8 Metro app."); 
await Windows.System.Launcher.LaunchUriAsync(mailto); 
+0

Użyj udostępniania dla Windows 8 RT App –

+0

Próbowałem i działa dobrze, ale myślę, że "preferowany" sposób byłby poprzez Share Charm. Dzięki za twój wkład! –

+4

Preferowanym sposobem nie zawsze jest Urok udziału. Urok udziału jest używany, gdy chcesz udostępnić określone treści ze swojej aplikacji. na przykład, gdy mam listę kontaktów w mojej aplikacji, gdy wybieram kontakt i udział prasowy, zakładam, że mogę udostępnić dane kontaktowe tego kontaktu i nie wysłać mu e-maila. aby wysłać mu wiadomość, wybrałbym kontakt i kliknę ikonę poczty na pasku aplikacji, która używa mailto: i uruchamia pełną aplikację pocztową. – GeertvdC

1

zawsze jest możliwe, aby połączyć się z serwerem SMTP i wydawania poleceń jak HELO, poczta, RCPT itp Oczywiście musisz mieć serwer SMTP połączyć się z. Używam tego w naszym firmowym intranecie do wysyłania e-maili.

+0

Użycie udostępniania dla Windows 8 RT App –

6

To poprawnej składni użyć dla mailto: łącza (w przeciwieństwie do innych przykładach powyżej, z mailto: które są niepoprawne ..)

var mailto = new Uri("mailto:[email protected]?subject=" + subject + "&body=" + body); 
await Launcher.LaunchUriAsync(mailto); 

Problem z metodą mailto: polega na tym, że użytkownik nie ma programu klienta skojarzonego z mailto: nic się nie stanie.

Najbardziej niezawodną metodą jest usługa sieciowa lub usługa WCF. Korzystanie z Uroku udziału, uważanego za "poprawny" sposób w systemie Windows 8, nie jest koniecznie najlepszym rozwiązaniem, ponieważ użytkownik nadal może nie mieć zainstalowanego klienta poczty e-mail, na przykład jeśli używa adresu gmail.com jako adresu e-mail.

3

Jeśli tworzysz uniwersalną aplikację WinRT Windows Phone, możesz użyć przestrzeni nazw "Windows.ApplicationModel.Email.EmailMessage", ponieważ przestrzeń nazw "Microsoft.Phone.Tasks.EmailComposeTask" nie działa w aplikacji WinRT.

Następnie używa tego kodu, aby utworzyć i uruchomić nową wiadomość e-mail.

// 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("[email protected]")); 
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); 

Mam nadzieję, że rozwiąże to problem (lub innych programistów).

Pozdrawiam.

+1

Jakikolwiek sposób to zrobić w aplikacji sklepu Windows 8? – SandRock