使用 LinkedResource 发送电子邮件





0/5 (0投票)
简介 当您想要发送电子邮件时,您必须创建 MailMessage 和 SmtpClient 类的实例。 这些类位于
介绍
当您想要发送电子邮件时,您必须创建 MailMessage 和 SmtpClient 类的实例。 这些类位于 System.Net.Mail 命名空间中。 在此示例中,aj 创建了 GetSmtpClient 方法,该方法返回一个 SmtpClient 对象,并带有参数
- host:表示用于 SMTP 事务的服务器的 IP 或名称
- port:表示用于 SMTP 事务的端口
- user:表示用户名
- password:表示帐户密码
- enableSsl:指定是否使用安全套接字层 (SSL) 来加密连接
之后,我创建了 MailMessage 对象。 当您想要创建带有资源(图片等)的基于 HTML 的消息时,您必须使用 LinkedResource 类。LinkedResource 类表示电子邮件附件中嵌入的外部资源,例如图像。 对于每个链接的资源,您必须设置 ContentId,它唯一地标识资源。 在示例中,文件 "photo.jpg" 被添加,ContentId="photo"。
为了演示目的,我使用了 smtp.gmail.com 服务器。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;
namespace SendMail
{
class Program
{
static void Main(string[] args)
{
SmtpClient smtpClient = GetSmtpClient("smtp.gmail.com", 587, "GmailUserName@gmail.com", "password", true);
MailMessage mail = new MailMessage();
mail.From = new MailAddress("GmailUserName@gmail.com");
mail.To.Add("AddressTo@hotmail.com");
mail.Subject = "Test";
string htmlBody="";
htmlBody = htmlBody + "<img src=\"cid:photo\">" + Environment.NewLine;
mail.IsBodyHtml = true;
mail.Body = htmlBody;
AlternateView htmlview = default(AlternateView);
htmlview = AlternateView.CreateAlternateViewFromString(htmlBody, null, "text/html");
LinkedResource imageResourceEs = new LinkedResource("photo.jpg");
imageResourceEs.ContentId = "photo";
imageResourceEs.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
htmlview.LinkedResources.Add(imageResourceEs);
mail.AlternateViews.Add(htmlview);
try
{
smtpClient.Send(mail);
}
catch (Exception t)
{
Console.WriteLine(t.Message);
}
}
static SmtpClient GetSmtpClient(string host, int port, string user, string password, bool enableSsl)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = host;
smtpClient.Port = port;
NetworkCredential cred = new NetworkCredential(user, password);
smtpClient.EnableSsl = enableSsl;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Timeout = 5000;
smtpClient.Credentials = cred;
return smtpClient;
}
}
}
链接
http://msdn.microsoft.com/en-us/library/system.net.mail.linkedresource.aspx