Fork me on GitHub

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"换行等各种换行都不能用,体验不好。但是用户在点击【发送按钮之前,他们是可以编辑且换行的,但是你不能】

 

 

 

 

② 带附件的发送【推荐】

这个呢,有点麻烦,不是逻辑麻烦,而是代码比上面的多了几行,哈哈

先不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上附加了系统的一些信息。

好像没有第三种方法了

具体怎么取舍看你咯

posted @ 2017-11-06 15:12  猫叔Vincent  阅读(406)  评论(0编辑  收藏  举报