zoukankan      html  css  js  c++  java
  • C#发送邮件源码

    介绍

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
    SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。
    SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

    发送邮件的基本步骤

    第一:需要指明邮件SMTP服务器地址:smtp.163.com
    第二:开启SSL安全连接。
    第三:用户凭证。

    SmtpClient是什么

    Socket → TcpListener → SmtpClient

    简单的邮件发送

            /// <summary>
            /// 最基本的发送邮件的方法
            /// </summary>
            public static void Send163Demo()
            {
                string user = "*****@163.com";//替换成你的hotmail用户名
                string password = "******";//替换成你的hotmail密码
                string host = "smtp.163.com";//设置邮件的服务器
                string mailAddress = "*****@163.com"; //替换成你的hotmail账户
                string ToAddress = "*******@163.com";//目标邮件地址。
    
                SmtpClient smtp = new SmtpClient(host);
                smtp.EnableSsl = true; //开启安全连接。
                smtp.Credentials = new NetworkCredential(user, password); //创建用户凭证
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //使用网络传送
                MailMessage message = new MailMessage(mailAddress, ToAddress, "标题", "发送内容");  //创建邮件
                smtp.Send(message); //发送邮件   异步发送邮件 smtp.SendAsync(message, "huayingjie"); //这里简单修改下,发送邮件会变的很快。
                Console.WriteLine("邮件发送成功!");
            }

    下面是对代码的封装,进行对hotmail、163、QQ发送邮件

    using System.Collections.Generic;
    using System.Net.Mail;
    
    namespace SendMail
    {
        public class MailModel
        {
            /// <summary>
            /// 用户名,根据需要看是否需要带@hotmail.com
            /// </summary>
            public string UserName { get; set; }
    
            /// <summary>
            /// 密码
            /// </summary>
            public string Password { get; set; }
    
            /// <summary>
            /// 服务器
            /// </summary>
            public string Host { get; set; }
    
            /// <summary>
            /// 邮箱账户
            /// </summary>
            public string FromMailAddress { get; set; }
    
            /// <summary>
            /// 目标账户
            /// </summary>
            public IList<string> ToAddress { get; set; }
    
            /// <summary>
            /// 是否开启安全连接
            /// </summary>
            public bool EnableSsl { get; set; }
    
            /// <summary>
            /// 传输协议
            /// </summary>
            public SmtpDeliveryMethod DeliveryMethod { get; set; }
    
            /// <summary>
            /// 端口
            /// </summary>
            public int Port { get; set; }
    
            /// <summary>
            /// 标题
            /// </summary>
            public string Subject { get; set; }
    
            /// <summary>
            /// 内容
            /// </summary>
            public string Body { get; set; }
    
            public MailModel() {
                ToAddress = new List<string>();
            }
    
            public MailModel(
                string userName,
                string password,
                string host,
                string mailAddress,
                IList<string> toAddress,
                bool enableSsl,
                SmtpDeliveryMethod deliveryMethod,
                int port,
                string title,
                string content
                )
            {
                UserName = userName;
                Password = password;
                Host = host;
                FromMailAddress = mailAddress;
                ToAddress = toAddress;
                EnableSsl = enableSsl;
                DeliveryMethod = deliveryMethod;
                Port = port;
                Subject = title;
                Body = content;
            }
        }
    }
    using SendMail;
    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Net.Mail;
    
    namespace SendMailDemo
    {
        class SendMail
        {
            public SendMail() { }
    
            /// <summary>
            /// 最基本的发送邮件的方法
            /// </summary>
            public static void Send163Demo()
            {
                string user = "*****@163.com";//替换成你的hotmail用户名
                string password = "******";//替换成你的hotmail密码
                string host = "smtp.163.com";//设置邮件的服务器
                string mailAddress = "*****@163.com"; //替换成你的hotmail账户
                string ToAddress = "*******@163.com";//目标邮件地址。
    
                SmtpClient smtp = new SmtpClient(host);
                smtp.EnableSsl = true; //开启安全连接。
                smtp.Credentials = new NetworkCredential(user, password); //创建用户凭证
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //使用网络传送
                MailMessage message = new MailMessage(mailAddress, ToAddress, "标题", "发送内容");  //创建邮件
                smtp.Send(message); //发送邮件
                Console.WriteLine("邮件发送成功!");
            }
    
            //可以
            public static void SendHotmail()
            {
                string user = "*****@hotmail.com";
                string password = "*****";
                string host = "smtp.live.com";
                string mailAddress = "*****@hotmail.com";
                IList<string> toAddress = new List<string>();
                toAddress.Add("*****@163.com");
                bool enableSsl = true;
                SmtpDeliveryMethod deliveryMethod = SmtpDeliveryMethod.Network;
                int post = 465;
                string title = "标题";
                string content = "发送内容";
                MailModel mailModel = new MailModel(user, password, host, mailAddress, toAddress,
                    enableSsl, deliveryMethod, post, title, content);
    
                SennMail(mailModel);
            }
    
            //可以
            public static void Send163()
            {
                string user = "*****@163.com";
                string password = "*****";
                string host = "smtp.163.com";
                string mailAddress = "*****@163.com";
                IList<string> toAddress = new List<string>();
                toAddress.Add("*****@163.com");
                bool enableSsl = true;
                SmtpDeliveryMethod deliveryMethod = SmtpDeliveryMethod.Network;
                int post = 465;
                string title = "标题";
                string content = "发送内容";
                MailModel mailModel = new MailModel(user, password, host, mailAddress, toAddress,
                    enableSsl, deliveryMethod, post, title, content);
    
                SennMail(mailModel);
            }
    
            public static void SendQQ()
            {
                string user = "*****@qq.com";
                string password = "*****";
                string host = "smtp.qq.com";
                string mailAddress = "*****@qq.com";
                IList<string> toAddress = new List<string>();
                toAddress.Add("*****@qq.com");
                bool enableSsl = true;
                SmtpDeliveryMethod deliveryMethod = SmtpDeliveryMethod.Network;
                int post = 465;
                string title = "标题";
                string content = "发送内容";
                MailModel mailModel = new MailModel(user, password, host, mailAddress, toAddress,
                    enableSsl, deliveryMethod, post, title, content);
    
                SennMail(mailModel); ;
            }
    
            public static void SennMail(MailModel mailModel)
            {
                SmtpClient smtp = new SmtpClient(mailModel.Host);
                smtp.EnableSsl = mailModel.EnableSsl;
                smtp.Credentials = new NetworkCredential(mailModel.UserName, mailModel.Password);
                smtp.DeliveryMethod = mailModel.DeliveryMethod;
                //smtp.Port = mailModel.Port;//有些时候设置端口会出现很奇怪的问题,这个与服务器的设置有关,建议不要设置端口。
                MailAddress mailAddress = new MailAddress(mailModel.FromMailAddress);
    
                MailMessage message = new MailMessage();
                message.From = mailAddress;
                foreach (string toAddress in mailModel.ToAddress)
                {
                    message.To.Add(toAddress);
                }
                message.Subject = mailModel.Subject;
                message.Body = mailModel.Body;
                //message.IsBodyHtml = true;
                smtp.Send(message);
                Console.WriteLine("邮件发送成功!");
            }
        }
    }
    using System;
    
    namespace SendMailDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                SendMail.Send163Demo();
                //SendMail.Send163();
                //SendMail.SendQQ();
                //SendMail.SendHotmailDemo();
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    7.12
    Powerdesigner使用方法
    数据库中float类型字段,转化到前端显示,统一保留两位小数
    【1】直接插入排序
    KMP算法
    ssm框架下web项目,web.xml配置文件的作用
    客户要求输入框要记录下上一次输入的内容
    tomcat启动闪退
    页面第一次加载,JS没有效果,刷新一下就好了
    机器学习,安装python的支持包
  • 原文地址:https://www.cnblogs.com/zhao123/p/5644739.html
Copyright © 2011-2022 走看看