博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过SMTP协议来发送邮件
阅读量:6950 次
发布时间:2019-06-27

本文共 3247 字,大约阅读时间需要 10 分钟。

简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是事实上的在传输的标准。

SMTP是一个相对简单的基于的。在其之上指定了一条的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过程序来测试一个SMTP服务器。SMTP使用端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) 。

在八十年代早期SMTP开始被广泛地使用。当时,它只是作为的补充,UUCP更适合于处理在间歇连接的机器间传送邮件。相反,SMTP在发送和接收的机器始终连接在网络的情况下工作得最好。

是最早实现SMTP的邮件传输代理之一。到2001年至少有50个程序将SMTP实现为一个客户端(消息的发送者)或一个服务器(消息的接收者)。一些其他的流行的SMTP服务器程序包括了Philip Hazel的exim,的Postfix, D. J. Bernstein的,以及。

由于这个协议开始是基于纯文本的,它在文件上处理得并不好。诸如的标准被开发来编码二进制文件以使其通过SMTP来传输。今天,大多数SMTP服务器都支持8位MIME扩展,它使二进制文件的传输变得几乎和纯文本一样简单。

SMTP是一个“推”的协议,它不允许根据需要从远程服务器上“拉”来消息。要做到这点,邮件客户端必须使用或。另一个SMTP服务器可以使用ETRN在SMTP上触发一个发送。

以下就是在C#中通过SMTP协议来进行邮件的发送

1 public static string MailSending(string Dep_Email, string Mis_Name, string Mis_Describe, string File_Path) 2         { 3             string MailUser = ConfigurationManager.AppSettings["MailUser"].ToString(); 4             string MailName = ConfigurationManager.AppSettings["MailName"].ToString(); 5             string MailHost = ConfigurationManager.AppSettings["MailHost"].ToString(); 6             string MailPwd = ConfigurationManager.AppSettings["MailPwd"].ToString(); 7             MailAddress from = new MailAddress(MailUser, MailName); 8             MailMessage mail = new MailMessage(); 9             mail.Subject = Mis_Name;10             mail.From = from;11             string[] mailNames = (Dep_Email + ";").Split(new char[]{
';'});12 string[] array = mailNames;13 for (int i = 0; i < array.Length; i++)14 {15 string name = array[i];16 if (name != string.Empty)17 {18 string displayName;19 string address;20 if (name.IndexOf('<') > 0)21 {22 displayName = name.Substring(0, name.IndexOf('<'));23 address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');24 }25 else26 {27 displayName = string.Empty;28 address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');29 }30 mail.To.Add(new MailAddress(address, displayName));31 }32 }33 mail.Body = Mis_Describe;34 mail.BodyEncoding = Encoding.UTF8;35 mail.IsBodyHtml = true;36 mail.Priority = MailPriority.Normal;37 if (File_Path != "")38 {39 mail.Attachments.Add(new Attachment(File_Path));40 mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;41 }42 SmtpClient client = new SmtpClient();43 client.Host = MailHost;44 client.Port = 25;45 client.UseDefaultCredentials = false;46 client.Credentials = new NetworkCredential(MailUser, MailPwd);47 client.DeliveryMethod = SmtpDeliveryMethod.Network;48 mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;49 client.Send(mail);50 return mail.ToString();51 }
View Code

 

转载于:https://www.cnblogs.com/antsong/p/SMTPEmail.html

你可能感兴趣的文章
leetcode解题报告:198 House Robber
查看>>
Spring @Value 无法获取到properties文件中的值
查看>>
Win8 采用受信任启动保障用户安全
查看>>
linux 安装 jdk bin
查看>>
查看计算机信息
查看>>
编程基础(哑元、内联)
查看>>
hadoop2.8的namenode节点用jps发现没有jobtracker 和tasktracke
查看>>
history 显示时间
查看>>
视频帧率对人眼主观感受的影响 2
查看>>
postfix+dovecot+foxmail虚拟用户配置
查看>>
【中国互联网不眠夜】Struts2漏洞百出,OneRASP鼎力相助
查看>>
C语言之main函数传参
查看>>
Vuex + axios 发送请求
查看>>
Linux网络编程-TCP头部与UDP头部结构对比
查看>>
Android 运行时权限管理最佳实践
查看>>
【系列】EOS开发2 如何运行单节点测试网络
查看>>
Linux Kernel 4.1.12 LTS发布
查看>>
回文数
查看>>
IntelliJ IDEA总是提示Cannot resolve symbol
查看>>
如何把PDF文件进行翻译
查看>>