M3: 发送邮件附件(2)

摘要:
本节介绍如何通过邮件将生成的贺卡发送给朋友。确保您已完成上一章。在主页中。xaml-Cs页面,在SendMail_Click方法中,新定义EmailMessage的对象,并转换上一节中生成的Wishes。jpg文件作为电子邮件附件发送给其他人。该应用程序将打开电子邮件程序,创建新电子邮件,并添加祝福。jpg作为电子邮件附件。

本小节介绍如何通过邮件将生成的贺卡发送给朋友。使用到了EmailMessageAPI, 需要引入的命名空间为Windows.ApplicationModel.Email

请确保完成了以前的章节。

MainPage.xaml.cs页面,在SendMail_Click方法中,新定义EmailMessage的对象,将前一节中生成的Wishes.jpg文件作为邮件附件发送给其他人。 添加如下代码:

EmailMessage emailMessage = new EmailMessage();
emailMessage.Body = "Thanksgiving Card from your friend, this is generated by Card App.";
var stream1 = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(file);
var attachment = new Windows.ApplicationModel.Email.EmailAttachment(file.Name, stream1);

emailMessage.Attachments.Add(attachment);
await EmailManager.ShowComposeNewEmailAsync(emailMessage);

修改后, SendMail_Click方法的完整代码如下:

private async void SendMail_Click(object sender, RoutedEventArgs e)
{
    RenderTargetBitmap renderTrgBitmap = new RenderTargetBitmap();
    await renderTrgBitmap.RenderAsync(gridMsg);

    var pixelBuffer = await renderTrgBitmap.GetPixelsAsync();
    var file = await KnownFolders.PicturesLibrary.CreateFileAsync("Wishes.jpg", CreationCollisionOption.ReplaceExisting);

    using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
    {
        var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream);
        encoder.SetPixelData(BitmapPixelFormat.Bgra8,
            BitmapAlphaMode.Straight,
            (uint)renderTrgBitmap.PixelWidth,
            (uint)renderTrgBitmap.PixelHeight,
            96d, 96d,
            pixelBuffer.ToArray());

        await encoder.FlushAsync();
    }

    EmailMessage emailMessage = new EmailMessage();
    emailMessage.Body = "Thanksgiving Card from your friend, this is generated by Card App.";
    var stream1 = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromFile(file);
    var attachment = new Windows.ApplicationModel.Email.EmailAttachment(file.Name, stream1);

    emailMessage.Attachments.Add(attachment);
    await EmailManager.ShowComposeNewEmailAsync(emailMessage);
}

运行程序,单击Get a Wishes按钮,再单击Send to Friend按钮。App将打开邮件程序,新建一个邮件,并将Wishes.jpg添加为邮件附件。

免责声明:文章转载自《M3: 发送邮件附件(2)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JavaEE-02 JSP数据交互01Linux 如何杀死僵尸进程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

2-7-搭建DNS服务器实现域名解析

  学习服务的方法: 了解服务的作用:名称,功能,特点 安装服务 配置文件的位置,端口 服务开启和关闭的脚本 修改配置文件(实战举例) 排错(从上到下,从内到外) ---------------------------------------- 大纲: DNS服务器常见概念 DNS服务器安装及相关配置 实战:配置DNS服务器解析 实战:使用DNS支持递归...

iostat磁盘监控工具

安装iostat磁盘监控工具 1、安装 yum install sysstat 2、运行 iostat -k -d -x 1 10 -k:以kb为单位统计 -d:显示磁盘状态 -x:显示详细信息 1:统计时间间隔为1秒 10:统计10次     rkb/s,wkb/s:每秒读写数据 await:每个IO请求等待时间 (ms),如果大于10MS,则性能不佳...

bigNumber.js的简单使用

sum 计算传入的参数和,参数类型可以是 String,Number // 两数之和 var x = BigNumber.sum('11', 23) x.toNumber() // 34 // 多个参数 arr = [2, new BigNumber(14), '15.9999', 12] var y = BigNumber.sum(...arr) y.t...

C# 获取 串口 设备名称 与 串口号 ManagementObjectSearcher类

1.效果图: 2.代码 classProgram { static void Main(string[] args) { GetComList(); } private static voidGetComList() {try{...

.net中RSA加密解密

1、产生密钥: private static void CreateKey() { using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { string public...

JS 获取当前日期时间(兼容IE FF)

以前在页面中获得当前时间的方法如下: function SelectTodayClient() {var d = new Date();var taday = d.getYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate(); alert($(taday);}  IE运行正常,FF...