C# 将Picturebox图像发送到默认电子邮件
在我的表格中,我有一个包含图像的图片盒。我正试图弄清楚如何将图片盒中的图片作为附件放入默认电子邮件的正文中 这就是我目前的情况: 这将打开我的默认电子邮件outlook,但不会在正文中附加或粘贴图片C# 将Picturebox图像发送到默认电子邮件,c#,.net,winforms,email,C#,.net,Winforms,Email,在我的表格中,我有一个包含图像的图片盒。我正试图弄清楚如何将图片盒中的图片作为附件放入默认电子邮件的正文中 这就是我目前的情况: 这将打开我的默认电子邮件outlook,但不会在正文中附加或粘贴图片 private void button1_Click(object sender, EventArgs e) { var url = "mailto:emailnameu@domain.com&SUBJECT=My Subject&body="+pict
private void button1_Click(object sender, EventArgs e)
{
var url = "mailto:emailnameu@domain.com&SUBJECT=My Subject&body="+pictureBox1.Image+"&attachment=" + pictureBox1.Image;
System.Diagnostics.Process.Start(url);
}
当我在变量&body=“+pictureBox1.Image+
中添加此行时,它不会将图片粘贴到正文中,而是写入System.Drawing.Bitmap
据说,你不能用mailto发送身体上的图像内容 特殊的“主体”表示相关的 是消息的正文。“正文”字段值用于 包含文档的第一个文本/纯正文部分的内容 “body”伪头字段主要用于 生成用于自动处理的短文本消息(如 作为邮件列表的“订阅”邮件),不适用于一般MIME 尸体
此外,出于安全原因,附件不受官方支持。正如其他答案和评论所说,您不能使用
mailto:
发送图像。但是,从PictureBox发送图像有一种可行的方法
该解决方案仅创建由相关应用程序打开的.eml
文件
因此,您只需保存PictureBox内容并将其作为附件发送:
string tempEmail = Path.ChangeExtension(Path.GetTempFileName(), "eml");
string tempImage = Path.Combine(Path.GetTempPath(), "Attachment.jpg");
pictureBox1.Image.Save(tempImage, ImageFormat.Jpeg);
var mailMessage = new MailMessage("from@domain.com", "to@domain.com", "Subject here", "Body text here");
mailMessage.Attachments.Add(new Attachment(tempImage));
mailMessage.Save(tempEmail);
Process.Start(tempEmail);
注意,电子邮件客户端关闭后,你也应该考虑一些清理。
嗨@ Vasek,它不谈论使用SMTP服务器。我正在讨论如何用默认的Email抱歉,在移动中选择错误的链接。这是正确的:Hi @ Vasek没有问题,但是这个链接不能提供解决这个问题的解决方案。