win10 UWP 发邮件
UWP 下如何发邮件?可以使用mailto:xx?subject=*方式发送?
本文:如何在 UWP 使用默认邮件发邮件。
打开设置,应用,默认应用,选择应用 OutLook。这样就和我的一样,如果出错了,那么是邮件不支持。
首先需要找联系人,联系人可以在用户联系找。
//找到一个联系人
//如果是需要用户选发送到哪个联系人,使用下面方法
var contactPicker = new ContactPicker();
contactPicker.SelectionMode = ContactSelectionMode.Fields;//选择联系人一个项
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);//选择email
Contact 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 发邮件的更多相关文章
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
- Win10 UWP开发系列:实现Master/Detail布局
在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- Win10 UWP应用发布流程
简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...
- win10 UWP GET Post
win10 应用应该是要有访问网络,网络现在最多的是使用GET,Post,简单的使用,可以用网络的数据:获得博客的访问量. 在使用网络,我们需要设置Package.appxmanifest 网络请求使 ...
- win10 uwp MVVM 轻量框架
如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...
- win10 uwp MVVM入门
MVVM 是一个强大的架构,基本从 WPF 开始,wr(我说的就是微软)就提倡使用 MVVM.它可以将界面和后台分离,让开发人员可以不关心界面是怎样,全心投入到后台代码编写中. 然后在编写完后台代码后 ...
- win10 uwp 打电话
UWP可以使用打电话功能,在PC是用Skype,在手机是直接使用电话功能. UWP可以通过Skype打电话,那么如何通过应用间通讯,很简单使用Launcher. Skype电话使用Skype:(电话号 ...
随机推荐
- 团队作业4——第一次项目冲刺(Alpha版本)日志集合处
Day 1: http://www.cnblogs.com/TeamOf/p/6754373.html Day 2: http://www.cnblogs.com/TeamOf/p/6754410.h ...
- 201521123040《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 我们每次删除元 ...
- 20152112308 《Java程序设计》第3周学习总结
本周学习总结 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; public ...
- Java 第九周总结
1. 本周学习总结 2. 书面作业 1.常用异常 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 以前的代码经常出现空指针的,需 ...
- 201521123060 《Java程序设计》第12周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2.书面作业 将Student对象(属性:int id, String name,int age,double ...
- 201521123096《Java程序设计》第十四周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- Java课程设计 学生基本信息管理个人博客
学生基本信息管理系统个人博客 团队课程设计链接 http://www.cnblogs.com/ll321/p/7067598.html 个人负责模块 负责部分界面设计,处理代码: 处理部分数据库数据. ...
- 假设我的朋友账号分别是v{1,2,3,4,5},且这五人想要共享一个目录,因此应该加入同一个群组,假设这个群组为vbird,且这五个账号的密码均为password.那该如何建置这五个账号?
假设我的朋友账号分别是v{1,2,3,4,5},且这五人想要共享一个目录,因此应该加入同一个群组,假设这个群组为vbird,且这五个账号的密码均为password.那该如何建置这五个账号?#!/bin ...
- Ansible系列(一):基本配置和使用
本文目录:1.1 安装Ansible1.2 配置Ansible 1.2.1 环境配置 1.2.2 SSH互信配置 1.2.3 简单测试1.3 inventory Ansible是一种批量.自动部署工具 ...
- SpringMVC 构建Restful风格 及问题处理
基本的请求URL: /person/{id} GET 得到id的person /person POST 新增person /person/{id} PUT 更新id的person / ...