作为一只入行不久的小菜鸟,最近接触到利用C#代码发送邮件,做了一点小的demo练习。首先,需要配置,这边我做的是QQ邮箱的相关的练习,练习之前,首先应该解决的问题肯定是关于服务器的配置,这边偷一个懒,不做一一的步骤截图,此外文字表述能力也不及于很好的阐述清楚这个东西,附上百度经验的链接吧 https://jingyan.baidu.com/article/6079ad0eb14aaa28fe86db5a.html。 配置好了之后就开始代码了
第一种方式:
点击发送按钮执行代码:
/// <summary>
/// 发送
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
SendM send = new SendM();
string sendto = SendTo.Text; //目标邮箱
string zt = txtZt.Text; //邮箱主题
string nr = Nr.Text; //邮箱内容
bool a = CheckEmail.CheckTxtEmail(sendto); //检查邮箱地址是否规范
if (a == true)
{
if( send.SendMessage(sendto, zt, nr)) //调用发送
{
MessageBox.Show("发送成功");
RefreshAll();
}
}
else
{
MessageBox.Show("邮箱地址错误");
RefreshAll();
}
}
上面代码的SendMessage函数:
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="mailto"></param>
/// <param name="mailSubject"></param>
/// <param name="mailContent"></param>
/// <returns></returns>
public bool SendMessage(string mailto,string mailSubject,string mailContent)
{
string stmpSever = "smtp.qq.com"; //服务器
string mailfrom = "**********@qq.com"; //进行QQ邮箱相关配置 用于发送邮件的地址
string mailfromPwd = "**************"; //QQ邮箱开启服务 获取的对应授权码
MailMessage message = new MailMessage();
message.Subject = mailSubject; //邮件的主题
message.Body = mailContent;//邮件的内容
message.BodyEncoding = Encoding.UTF8;
message.From =new MailAddress(mailfrom); //邮箱的地址
message.To.Add(mailto); //目标邮箱
message.Priority = MailPriority.Normal;
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Host = stmpSever;
client.UseDefaultCredentials = false;
client.Credentials= new NetworkCredential(mailfrom, mailfromPwd);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
client.Send(message);
return true;
}
catch
{
return false;
}
以此实现第一种方式的发送邮件方式,
第二种:利用 System.Web.Helpers 下面的WebMail 类实现发送邮件的方式。
附上代码:
WebMail.SmtpServer = "smtp.qq.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "*************@qq.com"; //进行QQ邮箱相关配置 用于发送邮件的地址
WebMail.Password = "**************";
WebMail.From = "********@qq.com"; // 用于发送邮件的地址 一般情况下与 username 相同
WebMail.Send(目标邮箱, 邮件主题, 邮件内容);
即可发送,附上微软的官方文档 https://docs.microsoft.com/en-us/previous-versions/aspnet/gg547987(v%3Dvs.111) 以及w3c参考手册 http://home.ustc.edu.cn/~xie1993/aspnet/webpages-ref-webmail.html
以上为自己的demo,作为刚入行的菜鸟,以此记录一下自己的小收获,不足之处敬请各位谅解和指正,感谢