天天看點

UWP 郵件回報

在我們建構App的時候,一個很人性化的設計就是增加郵件回報管道,就是讓使用者直接發郵件給你回報。

當然,你也可以用系統自帶的“回報中心”(超級無敵難用,還經常打不開),或者使用商店的評價系統。

但是這些遠不及郵件效率高效及時!!!

是以今天來記錄一下怎麼樣在UWP裡面發郵件。很簡單,有兩個辦法:

① 不帶附件的發送

這個最簡單了,主要兩句話

public async static Task FeedbackAsync(string address, string subject, string body)
        {
            if (address == null)
                return;
            var mailto = new Uri($"mailto:{address}?subject={subject}&body={body}");
            await Launcher.LaunchUriAsync(mailto);
        }      

意思就不解釋了吧,用法也不解釋了。

是吧!隻不過缺點就是不能發送附件,這是我知道的啊。當然可能我是菜鳥,如果你知道怎麼發送,請留言,謝謝。

還一個缺點就是你想在body郵件主體裡面預先加一些文字的話,"\r\n"換行等各種換行都不能用,體驗不好。但是使用者在點選【發送按鈕之前,他們是可以編輯且換行的,但是你不能】

UWP 郵件回報

② 帶附件的發送【推薦】

這個呢,有點麻煩,不是邏輯麻煩,而是代碼比上面的多了幾行,哈哈

先不BB那麼多,直接看code

public async static Task ComposeEmail(string address, string subject, string messageBody, StorageFile attachmentFile)
        {
            var emailMessage = new Windows.ApplicationModel.Email.EmailMessage();
            emailMessage.Body = messageBody;
            emailMessage.Subject = subjectif (attachmentFile != null)
            {
                var stream = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(attachmentFile);
                var attachment = new Windows.ApplicationModel.Email.EmailAttachment(attachmentFile.Name, stream);
                emailMessage.Attachments.Add(attachment);
            }

            var emailRecipient = new Windows.ApplicationModel.Email.EmailRecipient(address);
            emailMessage.To.Add(emailRecipient);
            await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);
        }      

看,可以發附件,一定不要忘記最後一句

await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);      

這個呢,就克服了上面第一種的缺點,可以在messageBody預置文字裡面\r\n了

詳見MSDN https://docs.microsoft.com/zh-cn/windows/uwp/contacts-and-calendar/sending-email

這個也有缺點,隻能等微軟修複了。 messageBody不支援中文,哈哈哈哈哈哈哈

但是使用者在點選【發送按鈕之前,他們是可以編輯中文的,但是你不能】

我用這個主要是在使用者發送附件(軟體日志)的同時,body上附加了系統的一些資訊。

UWP 郵件回報

好像沒有第三種方法了

具體怎麼取舍看你咯

UWP 郵件回報

作者:貓叔Vincent

    本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。