`
lindexi-gd
  • 浏览: 139580 次
社区版块
存档分类
最新评论

win10 UWP 发邮件

 
阅读更多

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

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

<!--more-->

打开设置,应用,默认应用,选择应用 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 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    UWP 发送邮件源码

    在UWP(Universal Windows Platform)应用开发中,发送邮件是一项常见的功能需求,尤其适用于企业级应用或者个人通讯工具。...通过学习和理解这些API,你可以创建出功能完善的UWP邮件应用,满足用户的通讯需求。

    win10内置应用卸载

    在Windows 10操作系统中,内置了一系列的应用程序,如邮件、日历、照片、音乐、电影与电视等,这些应用通常被称为"Modern"或"UWP"(通用Windows平台)应用。然而,有些用户可能并不需要所有预装的应用,或者希望优化...

    LTSB_2016_LTSC_2019应用商店安装包_11809_HWH0488_20181008.rar

    但是LTSB/C也没了应用商店和UWP运行环境,应用商店也是Win10的一大特色! Win10的应用商店也有一些优秀的应用可以代替臃肿的桌面程序。 使用该工具即可在 Windows10 LTSC(2019,1809) 上安装应用商店。 WIN10企业版...

    Win10中启用Mobile Device Center

    在Windows 10操作系统中启用Mobile Device ...不过,由于MDC已经较旧,对于新的Windows 10版本可能存在一些兼容性问题,因此建议同时寻找替代方案,如Visual Studio的设备模拟器或通用Windows平台(UWP)的调试工具。

    Win7用户有必要升级Win10吗?.docx

    用户可以直接在搜索栏中输入关键词,快速找到本地和云端的文件,甚至能搜索到邮件和网页内容。Cortana还能够理解和执行自然语言命令,帮助用户执行复杂的任务,如创建提醒、管理日程等。 安全性和隐私 随着技术的...

    含钙的UWP表格验证

    例如,一个电子邮件地址字段需要符合特定的格式,一个年龄字段应为正整数且不超过某个值。"含钙的UWP表格验证"提供了以下关键功能: 1. **数据绑定验证**:该框架支持数据绑定验证规则,允许开发者在ViewModel层...

    Windows 10用户手册【基于用户视角】

    Windows 操作系统开发,转而听取用户的反馈,使用 Windows 10 的用户可以加入 Windows Insider 计划,和全球数百万的Insiders 一起帮助塑造 Windows 10,提供反馈并且为你赞同的反馈投票,成功的案例如邮件和日历中...

    WCH_BLE_DLL开发库与例程.zip

    Win32 API通常比更现代的UWP(通用Windows平台)API更为底层,因此可能提供更精细的控制,但同时也需要更多的系统级编程知识。开发库可能包括设备枚举、连接、服务发现、数据传输等功能。 2. **MFC例程**:MFC...

    Windows 10系统使用和防护技巧

    10. **应用商店与UWP应用**:了解Windows应用商店,如何下载和管理应用,以及使用通用Windows平台(UWP)应用的特点和优势。 11. **Edge浏览器**:掌握Microsoft Edge的基本操作,如设置默认搜索引擎、保存网页为...

    TankFire:虚幻引擎4 3D多人坦克射击.io游戏

    坦克大火 这是一个在线射击游戏,就像other.io游戏一样。 2016年,我使用Unity(移动和PC)开发了一个简单的.io射击游戏... 如果您有任何问题,请给我发电子邮件: 。 支持平台 ★1. Win64的 ★2. ★3. iOS ★4. UWP

    微软官方office365办公开发平台介绍最新卡通风格PPT模板.pptx

    此外,Office Add-ins支持跨平台部署,包括Win32、在线版、iPad、Mac、iPhone和Android,以及通用Windows应用程序(UWP)。 【开发愿景】:微软CEO萨提亚·纳德拉(Satya Nadella)强调Office 365是微软最具战略...

    msix-docs.pt-br:MSIX

    8. **开发友好**:开发者可以轻松地将现有Win32或UWP应用转换为MSIX格式,无需重写代码。 综上所述,MSIX作为微软的现代应用程序打包格式,与PowerShell的结合使用,为Windows环境带来了显著的改进。无论是企业级的...

Global site tag (gtag.js) - Google Analytics