您的位置:首页 > 其它

M3: 发送邮件附件(2)

2015-11-24 17:23 393 查看
本小节介绍如何通过邮件将生成的贺卡发送给朋友。使用到了
EmailMessage
API, 需要引入的命名空间为
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添加为邮件附件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: