全部产品
云市场

SMTP 之 CSharp 调用示例

更新时间:2019-07-03 17:48:03

通过 SMTP 协议发送带附件的邮件示例

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Net.Mail;
  5. using System.Net.Mime;
  6. namespace ConsoleApp
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. try
  13. {
  14. MailMessage mailMsg = new MailMessage();
  15. mailMsg.To.Add(new MailAddress("目标地址"));
  16. mailMsg.From = new MailAddress("控制台创建的发信地址", "昵称");
  17. //可选,设置回信地址
  18. mailMsg.ReplyTo.Add("***");
  19. // 邮件主题
  20. mailMsg.Subject = "邮件主题C#测试";
  21. // 邮件正文内容
  22. string text = "欢迎使用阿里云邮件推送";
  23. string html = @"欢迎使用<a href=""https://dm.console.aliyun.com"">邮件推送</a>";
  24. mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(text, null, MediaTypeNames.Text.Plain));
  25. mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, null, MediaTypeNames.Text.Html));
  26. // 添加附件
  27. string file = "D:\\1.txt";
  28. Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
  29. mailMsg.Attachments.Add(data);
  30. //邮件推送的SMTP地址和端口
  31. SmtpClient smtpClient = new SmtpClient("smtpdm.aliyun.com", 25);
  32. //C#官方文档介绍说明不支持隐式TLS方式,即465端口,需要使用25或者80端口(ECS不支持25端口),另外需增加一行 smtpClient.EnableSsl = true; 故使用SMTP加密方式需要修改如下:
  33. //SmtpClient smtpClient = new SmtpClient("smtpdm.aliyun.com", 80);
  34. //smtpClient.EnableSsl = true;
  35. // 使用SMTP用户名和密码进行验证
  36. System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("控制台创建的发信地址", "控制台设置的SMTP密码");
  37. smtpClient.Credentials = credentials;
  38. smtpClient.Send(mailMsg);
  39. }
  40. catch (Exception ex)
  41. {
  42. Console.WriteLine(ex.ToString());
  43. }
  44. }
  45. }
  46. }