zoukankan      html  css  js  c++  java
  • SMTP协议

    这段时间在看网络高级编程,对于SMTP协议C#进行了很多封装,使我们使用起来相当方便

    SMTP是英文Simple Mail Transfer Protocol的缩写,意为简单邮件传输协议,默认端口为25

    在SMTP协议中,电子邮件由三部分组成,信封、首部和正文。

    1) 信封

    信封包括发信人的邮件地址和接收人的邮件地址,用两条SMTP命令指明。

     ① MAIL FROM:<发信人的地址>,告诉SMTP服务器发信人的地址。

     ② RCPT TO:<收信人的地址>,告诉SMTP服务器收信人的地址。

    2) 首部

    首部中常用命令:

    ① FROM:<姓名><邮件地址>,表明邮件发送者是谁。

    ② TO:<姓名><邮件地址>,表明邮件接收者是谁。

    ③ SUBJECT:<邮件标题>,表明邮件的主题。

    ④ DATE:<时间>,表明发邮件的时间。

    ⑤ REPLY-TO:<邮件地址>,表明邮件的回复地址。

    ⑥ Content-Type:<邮件类型>,表明邮件包含文本、HTML超文本和附件的哪些类型。

    ⑦ X-Priority:<邮件优先级>,表明邮件的发送优先级。

    ⑧MIME-Version:<版本>,MIME的意思是Multipurpose Internet Mail Extensions,即多用途Internet邮件扩展标准,它对传输内容的消息、附件及其他的内容定义了格式。

     3) 正文

        正文是邮件的内容。首部以一个空行结束,再下面就是正文部分。

     4) 结束符号

        邮件以“.”结束。

    对于C#发送邮件我们只需要了解几个基本的类就行了

     1) System.Net命名空间下的NetworkCredential类

    NetworkCredential myCredentials = new NetworkCredential("发件人邮件地址", "密码");//提供发件人的用户名发密码

    MailAddress类用于提供发件人和收件人的邮件地址,常用形式为:

    MailAddress from = new MailAddress("发件人邮件地址");

    MailAddress to = new MailAddress("收件人邮件地址");

    MailMessage类用于提供邮件的信息,包括主题、内容、附件、信息类型等,常用形式为:

    MailMessage message = new MailMessage(from, to);

    message.Subject = "主题";

    message.SubjectEncoding = System.Text.Encoding.UTF8;

    message.Body = "邮件内容";

    message.BodyEncoding = System.Text.Encoding.UTF8;

    Attachment类用于提供附件对象,常用形式为

    Attachment attachFile = new Attachment("文件名");

    message.Attachments.Add(attachFile);

    5) SmtpClient类用于发送邮件,常用形式为:

    SmtpClient client = new SmtpClient("邮件服务器地址");

    client.Send(message);

    发送邮件方法:

      private void SendMail(SmtpClient client, MailAddress from, string p, MailAddress to, MailMessage message)
            {
                //不使用默认凭证,注意此句必须放在client.Credentials的上面
                client.UseDefaultCredentials = false;
                //指定用户名和密码
                client.Credentials = new NetworkCredential(from.Address, p);
                //邮件通过网络发送到服务器
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                try
                {
                    client.Send(message);
                }
                catch { throw; }
                finally
                {
                    //及时释放占用资源
                    message.Dispose();
                }
            }

    以上几个类就能实现C#对SMTP协议的使用,能进行邮件的基本发送,相对来说很简单,都不需要调用SMTP的相关命令

    下面的例子就是对上面的几个类的运用,能进行邮件的发送/Files/fujinliang/SendMailExample.rar 

  • 相关阅读:
    Learn Orleans 04
    Learn Orleans 03
    Learn Orleans 02
    Learn Orleans 01
    Python 导入 Excel 到数据库
    visio 2016/2019 时序图/序列图,修改消息的实线/虚线 箭头问题 返回消息状态
    steeltoe简单使用
    AOP in .NET
    centos 8 docker安装以及兼容性问题处理
    ef core SoftDelete Multi-tenancy 软删除、多租户实现 Global Query Filters
  • 原文地址:https://www.cnblogs.com/fujinliang/p/2564367.html
Copyright © 2011-2022 走看看