首先我们要知道我们使用的邮件的主机、端口等信息。本次博客就以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; //指定发送邮件端口
这样你就可以发送成邮件了

