zoukankan      html  css  js  c++  java
  • 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邮件主体里面预先加一些文字的话," "换行等各种换行都不能用,体验不好。但是用户在点击【发送按钮之前,他们是可以编辑且换行的,但是你不能】

    ② 带附件的发送【推荐】

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

    先不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预置文字里面 了

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

    这个也有缺点,只能等微软修复了。 messageBody不支持中文,

    但是用户在点击【发送按钮之前,他们是可以编辑中文的,但是你不能】

    我用这个主要是在用户发送附件(软件日志)的同时,body上附加了系统的一些信息。

    好像没有第三种方法了

    具体怎么取舍看你咯

  • 相关阅读:
    jQuery中.bind() .live() .delegate() .on()的区别
    jq中Deferred对象的使用
    事件捕获和事件冒泡
    exec与match方法的区别
    json的转换操作
    iframe内容自适应高度
    Html:upload
    小米盒子
    APUE读书笔记:关于sigsuspend
    我的C笔记
  • 原文地址:https://www.cnblogs.com/hupo376787/p/7793285.html
Copyright © 2011-2022 走看看