2018-8-10-win10-UWP-发邮件
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
win10 UWP 发邮件
|
lindexi
|
2018-08-10 19:17:19 +0800
|
2018-2-13 17:23:3 +0800
|
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
2018-8-10-win10-UWP-发邮件的更多相关文章
- win10 UWP 发邮件
UWP 下如何发邮件?可以使用mailto:xx?subject=*方式发送? 本文:如何在 UWP 使用默认邮件发邮件. 打开设置,应用,默认应用,选择应用 OutLook.这样就和我的一样,如果出 ...
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
- #题目:有10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次
#题目:有10 台被监控主机.一台监控机,在监控机上编写脚本,一旦某台被监控机器/ 分区适用率大于80%, 就发邮件报警放到crontab 里面, 每10 分钟检查一次 #测试机器:虚拟机Linux ...
- 带着新人学springboot的应用10(springboot+定时任务+发邮件)
接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
- 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 MVVM入门
MVVM 是一个强大的架构,基本从 WPF 开始,wr(我说的就是微软)就提倡使用 MVVM.它可以将界面和后台分离,让开发人员可以不关心界面是怎样,全心投入到后台代码编写中. 然后在编写完后台代码后 ...
- 【广告】win10 uwp 水印图床 含代码
本文主要是广告我的软件. 图床可以加速大家写博客上传图片的时间,通过简化我们的操作来得到加速. 在写博客的时候,我们发现,我们需要上传一张图片,需要先打开图片,然后选择本地图片,然后上传. 但是我经常 ...
- win10 uwp 商业游戏
本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...
随机推荐
- alert(1) to win 14
<!--<script></script>之间的内容会被当作js处理,所以,//we'll use this later </script>被注释了.最终 i ...
- 在子组件中触发事件,传值给父组件-vue
1.通过$emit触发事件 在子组件<x-test>中触发事件: <button @click="toSearchProduct()">搜索</but ...
- springboot 集成rabbitMQ
package com.jd.ng.shiro.config.rabbitMQconfig; import com.jd.ng.shiro.rabbitMqListener.SimpleMessage ...
- SpringBoot 快速集成 Elastic Job
一.引入依赖 <dependency> <groupId>com.github.kuhn-he</groupId> <artifactId>elasti ...
- Java中的栈和队列
栈: public class Stack<E> extends Vector<E> { // 使用数组实现栈 // 构造一个空栈 public Stack() { } // ...
- 20180705-Java对象和类
Java对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态继承封装抽象类对象实例方法消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个 ...
- 谈谈vue双向数据绑定问题
vue是MVVM模型,vueObserver 数据监听器,把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用Object.define ...
- 我的Podfile如下
# Uncomment this line to define a global platform for your projectuse_frameworks!(http://www.my516.c ...
- HDU4405 Aeroplane chess (概率DP,转移)
http://acm.hdu.edu.cn/showproblem.php?pid=4405 题意:在一个1×n的格子上掷色子,从0点出发,掷了多少前进几步,同时有些格点直接相连,即若a,b相连,当落 ...
- 为什么每次打出的包都是Release版本呢?
参考了:xcodebuild命令 https://www.cnblogs.com/liuluoxing/p/8622108.html 重新打个包,验证一下想法