smtp发送带附件的邮件代码分享

  该方式直接保存为HTML文件,也可以是文本文件,其它格式效果不是很好

  

复制代码 代码如下:

  MailMessage mmsg = new MailMessage();

  mmsg.Subject = "邮件标题";

  mmsg.Body = "邮件内容";

  mmsg.To.Add("[email protected]");//接收邮箱

  byte[] bytes = System.Text.Encoding.Default.GetBytes

  (@"<table><tr><td width=150>1234567891234567

  </td><td width=80>12345678</td></tr></table>");

  MemoryStream ms = new MemoryStream(bytes);

  ContentType ct = new ContentType();

  //附件文件类型

  ct.MediaType = MediaTypeNames.Text.Html;

  //附件名称,可以是其它后缀名

  ct.Name = "附件名称" + DateTime.Now.ToString() + ".html";

  mmsg.Attachments.Add(new Attachment(ms, ct));

  //SMTP简单邮件协议

  System.Net.Mail.SmtpClient sc

  = new System.Net.Mail.SmtpClient();

  sc.Host = "127.0.0.1";//主机地址

  sc.Port = 25;//端口

  //发送邮箱账号和密码

  sc.Credentials =

  new System.Net.NetworkCredential("account", "password");

  //发送邮箱

  mmsg.From = new MailAddress("[email protected]");

  sc.Send(mmsg);

  //释放流资源

  ms.Close();

  ms.Dispose();

  另附上一个.net使用smtp发送带附件邮件的实例

  

复制代码 代码如下:

  public static void sendEmail(string toAddress, string emailbody)

  {

  var fromAddress = ConfigurationManager.AppSettings["EmailAddress"];

  string fromPassword = ConfigurationManager.AppSettings["EmailPassword"].ToString();

  const string subject = "Job Recommendation";

  var smtp = new SmtpClient

  {

  Host = ConfigurationManager.AppSettings["SmtpServer"].ToString(),

  Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]),

  EnableSsl = true,

  DeliveryMethod = SmtpDeliveryMethod.Network,

  UseDefaultCredentials = false,

  Credentials = new NetworkCredential(fromAddress, fromPassword)

  };

  using (var message = new MailMessage(fromAddress, toAddress, subject, HttpUtility.HtmlEncode(emailbody)))

  {

  smtp.Send(message);

  }

  }

  <add key="EmailAddress" value="**********@gmail.com"/>//Email Address

  <add key="EmailPassword" value="*********"/> //Emial PWD

  <add key="SmtpServer" value="smtp.gmail.com"/>

  <add key="SmtpPort" value="587"/>

  <--带附件版本->

  var fromAddress = "[email protected]";

  string fromPassword = "yj1989120";

  const string subject = "CV";

  var smtp = new SmtpClient

  {

  Host = "smtp.gmail.com",

  Port = 587,

  EnableSsl = true,

  DeliveryMethod = SmtpDeliveryMethod.Network,

  UseDefaultCredentials = false,

  Credentials = new NetworkCredential(fromAddress, fromPassword)

  };

  MailMessage email=new MailMessage(fromAddress, "[email protected]");

  email.Subject = "INLINE attachment TEST";

  email.IsBodyHtml = true;

  string attachmentPath = "C:\\3.jpeg";

  Attachment inline = new Attachment(attachmentPath);

  inline.ContentDisposition.Inline = true;

  inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;

  //inline.ContentId = "1";

  //inline.ContentType.MediaType = "image/png";

  inline.ContentType.Name = Path.GetFileName(attachmentPath);

  email.Attachments.Add(inline);

  email.Body = "test";

  smtp.Send(email);

  email.Dispose();

  //如果没有路径,用Stream

  Attachment letter = new Attachment(FileUploadLetter.FileContent, FileUploadLetter.PostedFile.ContentType);

  letter.ContentDisposition.Inline = true;

  letter.ContentDisposition.DispositionType = DispositionTypeNames.Inline;

  //inline.ContentId = "1";

  letter.ContentType.MediaType = FileUploadLetter.PostedFile.ContentType;

  letter.ContentType.Name = Path.GetFileName(FileUploadLetter.PostedFile.FileName);

  letter.Name = Path.GetFileName(FileUploadLetter.PostedFile.FileName);