C# 发送邮件功能 整理


一、常见的邮箱类型有哪些?

    部分免费邮件SMTP服务器参考设置:

wKiom1WGr7mSK6vkAAGQOTI156I750.jpg

     另外如果是公司的邮箱发,如果host是exchange的话,端口也要用587而不是25.

一般企业的邮箱发送都不需要lient.EnableSsl = true;所以这行可以识具体情况添加。如果提识没有相应的证书且就把lient.EnableSsl = true去掉即可。当然发送邮件是采用同步还是异步的方式就看项目要求了,如果采用同步发送,主UI界面会阻塞,所以最好是另外开一个线程来发邮件。邮件状态可以通过委托来实现邮件发送状态的显示。


二、利用.net 的相关类库进行邮件发送

      在.net2.0及之后版本,用System.Net.Mail发送邮件。主要用到了在.net2.0中新增的两个类,分别是System.Net.Mail.MailMessageSystem.Net.Mail.SmtpClient两个类,在SMTP身份验证方面用到了System.Net.NetworkCredential类。

 

     1.  MailMessage  类表示邮件的内容

    MailMessage常用属性

wKiom1WGtJXRRasNAASHMWZWZtE555.jpg

   组织好电子邮件后,可以使用 SendSendAsync 方法发送邮件

    

     2.  SmtpClient类用于将电子邮件发送到 SMTP 服务器以便传递

       SmtpClient常用属性

wKioL1WGt0aR_zndAAMVCdCQd6I520.jpg


实例代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
namespace Mail_test
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 发送邮件程序
        /// </summary> 
        /// <param name="from">发送人邮件地址</param>
        /// <param name="fromname">发送人显示名称</param> 
        /// <param name="to">发送给谁(邮件地址)</param>
        /// <param name="subject">标题</param>
        /// <param name="body">内容</param> 
        /// <param name="username">邮件登录名</param> 
        /// <param name="password">邮件密码</param> 
        /// <param name="server">邮件服务器</param>
        /// <param name="fujian">附件</param>
        /// <returns>send ok</returns>
        /// 调用方法 SendMail("[email protected]", "某某人", "[email protected]", "你好", "我测试下邮件", "邮箱登录名", "邮箱密码", "smtp.126.com", "");
        private void button1_Click(object sender, EventArgs e)
        {
            string from = "从哪个邮箱发送";
            string fromname = "发送名字";
            string to="发送到哪个邮箱";
            string subject = "TEST";
            string body = "Excuse me,this is a test mail";
            string server = "邮箱服务器名称";
            string username = "账号";
            string password = "密码";
            try
            {
                MailMessage mail = new MailMessage();//邮件发送类
                mail.From = new MailAddress(from, fromname);//是谁发送的邮件
                mail.To.Add(to);
                //mail.To.Add(new MailAddress(to, toname));//发送给谁 或者简短的用 mail.To.Add(to)
                mail.Subject = subject; //标题
                mail.BodyEncoding = Encoding.Default; //内容编码
                mail.Priority = MailPriority.Normal;//发送优先级
                mail.Body = body;//邮件内容
                mail.IsBodyHtml = false;//是否HTML形式发送
               
                SmtpClient smtp = new SmtpClient(server, 25);//邮件服务器和端口
                smtp.UseDefaultCredentials = false;
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //指定发送方式
                smtp.Credentials = new System.Net.NetworkCredential(username, password);//指定登录名和密码
                smtp.Timeout = 10000;//超时时间
                //smtp.EnableSsl = true;//经过ssl加密
                smtp.Send(mail);
                //return "send ok";
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章