UWP 下如何发邮件?可以使用mailto:xx?subject=*方式发送?

本文:如何在 UWP 使用默认邮件发邮件。

打开设置,应用,默认应用,选择应用 OutLook。这样就和我的一样,如果出错了,那么是邮件不支持。

首先需要找联系人,联系人可以在用户联系找。

            //找到一个联系人//如果是需要用户选发送到哪个联系人,使用下面方法var contactPicker = new ContactPicker();contactPicker.SelectionMode = ContactSelectionMode.Fields;//选择联系人一个项contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);//选择emailContact contact = await contactPicker.PickContactAsync();

让用户选择有email的联系,不选择一个联系全部。这句话说的是,在用户选择联系人之后,让他选择联系人的一个项。

选择联系人,选择一个邮箱

如果指定一个联系人让用户发送,如开发者,可以使用:

            contact = new Contact(){Emails ={new ContactEmail(){Address = "lindexi_gd@163.com",Description = "UWP 开发者",}}};

然后需要填写主题,内容。可以添加附件,注意附件添加是 StorageFile 。

写一个类来发送,首先使用Windows.ApplicationModel.Email

    using Windows.ApplicationModel.Contacts;using Windows.ApplicationModel.Email;

需要主题和内容

            var emailMessage = new EmailMessage();emailMessage.Subject = subject;emailMessage.Body = messageBody;

如何读取 StorageFile ?

            if (attachmentFile != null){var stream = RandomAccessStreamReference.CreateFromFile(attachmentFile);var attachment = new EmailAttachment(attachmentFile.Name,stream);emailMessage.Attachments.Add(attachment);}

然后添加收件人

            var email = recipient.Emails.FirstOrDefault<ContactEmail>();if (email != null){var emailRecipient = new EmailRecipient(email.Address);emailMessage.To.Add(emailRecipient);}

假如发给多个人,使用 emailMessage.To.Add list

发邮件很简单,await EmailManager.ShowComposeNewEmailAsync(emailMessage);就可以让用户发邮件

如果默认不是wr的,那么发送邮件可以出错,于是可以使用另一个方式:

mailto:{email}?subject={subject}&body={messageBody}

如果遇到messageBody有换行可以看到这个方法没有换行。

UWP 发送邮件内容如何换行,messageBody 用的是 html ,所以使用 Uri.EscapeDataString

我写了一个函数,多谢 李继龙 大神,可以传入 email 主题 内容就可以发送

        private async Task UniversallyEmail(string email, string subject, string messageBody){messageBody = Uri.EscapeDataString(messageBody);string url = $"mailto:{email}?subject={subject}&body={messageBody}";await Launcher.LaunchUriAsync(new Uri(url));}

代码:http://download.csdn.net/detail/lindexi_gd/9757862

参见:https://docs.microsoft.com/en-us/windows/uwp/contacts-and-calendar/sending-email


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

win10 UWP 发邮件相关推荐

  1. win10 uwp 使用 Microsoft.Graph 发送邮件

    在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...

  2. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

  3. win10 uwp 使用 msbuild 命令行编译 UWP 程序

    原文:win10 uwp 使用 msbuild 命令行编译 UWP 程序 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http:// ...

  4. win10 UWP Controls by function

    Windows的 XAML UI 框架提供了很多控件,支持用户界面开发库. 我现在做的一个中文版的,很多都是照着微软写,除了注释 我们先学微软做一个简单的frame,新建Page,里面放title和跳 ...

  5. Win10 UWP应用发布流程

    简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...

  6. 增值税发票开票软件(税务UKey版) 发邮件提示连接邮件服务器失败

    环境: 联想E14 Win10 专业版 增值税发票开票软件(税务UKey版) 问题描述: 增值税发票开票软件(税务UKey版) 发邮件提示连接邮件服务器失败 解决方案: 1.查看邮箱服务是否开启 2. ...

  7. win10 uwp MVVM入门

    MVVM 是一个强大的架构,基本从 WPF 开始,wr(我说的就是微软)就提倡使用 MVVM.它可以将界面和后台分离,让开发人员可以不关心界面是怎样,全心投入到后台代码编写中. 然后在编写完后台代码后 ...

  8. win10 uwp 商业游戏 1.1.5

    本文是在win10 uwp 商业游戏 基础上继续开发,添加一些无聊的游戏 因为在发布几个月,下载量很少,小伙伴说游戏就玩不到几分钟就不想玩,于是我就想加入其他游戏 下面我来告诉大家如何在游戏中添加多个 ...

  9. win10 UWP GET Post

    win10 应用应该是要有访问网络,网络现在最多的是使用GET,Post,简单的使用,可以用网络的数据:获得博客的访问量. 在使用网络,我们需要设置Package.appxmanifest 网络请求使 ...

最新文章

  1. 如何制作一个通用的多系统安装U盘七(Windows相关配置)
  2. windows mysql增量备份_windows下mysql增量备份与全备份批处理
  3. [YTU]_1046 ( 输入10个数字,然后逆序输出)
  4. JavaSE(十二)——AWT
  5. golang变量定义细节及beego环境搭建细节记录
  6. 微信开发系列之八 - 微信公众号的地图集成
  7. [Android学习笔记四] 自定义Android组件之组合方式创建密码框组件
  8. sqlserver字符串分割
  9. 陆军装备环境可靠性试验|GJB150A-2009
  10. 1M到底是等于多少K?
  11. linux分段加载程序_Linux的分段机制
  12. vscode无法实现函数跳转,跳转到函数定义的地方
  13. BT技术原理(BitTorrent)
  14. 通信技术计算机技术合称为,通信技术、计算机技术和控制 技术合称为3C
  15. ASDFZ 3633 -- 排兵布阵
  16. 操作系统P/V操作(V操作中的典型理解偏差)
  17. 读《人性的优点》有感
  18. Python新手入门英文
  19. FileNotFoundError: Could not find module ‘C:\Users\Yolanda\anaconda3\envs\python38\lib\site-packages
  20. Traceback (most recent call last):异常

热门文章

  1. phpstorm:如何设置代码自动换行
  2. 达梦数据库和Oracle数据库的一些区别
  3. 山西计算机信息技术八年级教案,八年级信息技术 1.2 简单的图形绘制教案 山西版...
  4. 创建“网上书店”数据库和在数据库中创建表
  5. 专利大战:详解苹果三星矩形设计风波
  6. linux窗口特效,Ubuntu 8.04中将Compiz Fusion最小化窗口神灯效果水蛇状改成MAC OSX神奇特效...
  7. (附源码)计算机毕业设计ssm 基于Java宠物寄存管理系统
  8. win10鼎信诺为什么安装不了_2016年鼎信诺常见问题处理.docx
  9. 几款常用的表单设计器解决方案
  10. django一:windows及linux下安装django