首先我們要知道我們使用的郵件的主機、端口等信息。本次博客就以QQ郵箱為例子.
第一、你打開郵箱,找到設置,選擇賬戶;在下面找到 “ POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 ”
第二、開啟POP3/SMTP服務


第三步、服務開啟之后,就是代碼了,具體代碼如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Web;
using System.Windows.Forms;
namespace Email
{
class Programs
{
static void Main(string[] args)
{
btnEmailCode_Click();
}
//獲取郵箱驗證碼
public static void btnEmailCode_Click()
{
string mailFrom = "************"; //發件人郵箱地址
MailAddress MessageFrom = new MailAddress(mailFrom); //發件人郵箱地址
string mailTo = "************";//收件人地址
string activeCode = Guid.NewGuid().ToString().Substring(0, 6);//生成激活碼
string MessageSubject = "******************"; //主題
string MessageBody = "********************";//郵件內容
if (Send(MessageFrom, mailTo, MessageSubject, MessageBody))
{
Console.WriteLine("發送郵件成功");
}
else
{
Console.WriteLine("發送郵件失敗");
}
}
public static bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody)
{
MailMessage message = new MailMessage();
message.From = MessageFrom;
message.To.Add(MessageTo); //收件人郵箱地址可以是多個以實現群發
message.Subject = MessageSubject;
message.Body = MessageBody;
message.IsBodyHtml = true; //是否為html格式
message.Priority = MailPriority.High; //發送郵件的優先等級
SmtpClient sc = new SmtpClient();
sc.Host = "smtp.qq.com"; //指定發送郵件的服務器地址或IP
sc.Port = 25; //指定發送郵件端口
/*
* email :發件人的郵箱賬號
* butpgifsvvqebcbf:這個是你發送郵件的一個令牌,你需要在郵箱中申請之后會給你一個這樣的令牌(字符串)
* **/
sc.Credentials = new System.Net.NetworkCredential("email", "butpgifsvvqebcbf"); //指定登錄服務器的用戶名和密碼(發件人的郵箱登陸密碼)
try
{
sc.Send(message); // 發送郵件
return true;
}
catch (ArgumentNullException ex)
{
return false;
MessageBox.Show(ex.Message);
}
catch (ArgumentException ex)
{
return false;
MessageBox.Show(ex.Message);
}
//已釋放此對象。
catch (ObjectDisposedException ex)
{
return false;
MessageBox.Show(ex.Message);
}
catch (InvalidOperationException ex)
{
return false;
MessageBox.Show(ex.Message);
}
catch (SmtpFailedRecipientException ex)
{
return false;
MessageBox.Show(ex.Message);
}
catch (SmtpException ex)
{
return false;
MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
return false;
MessageBox.Show(ex.Message);
}
}
private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
if (e.Cancelled) //郵件發送被取消
{
MessageBox.Show("發送被取消!");
}
if (e.Error != null) //郵件發送失敗
{
MessageBox.Show("發送失敗!");
}
else //發送成功
{
MessageBox.Show("發送成功!");
}
}
}
}
注意:
sc.Host = "smtp.qq.com"; //指定發送郵件的服務器地址或IP sc.Port = 25; //指定發送郵件端口
這樣你就可以發送成郵件了

