C#使用QQ邮箱发邮件,需要注意几点:
1. 需要现在发送者的邮箱中设置SMTP开启:在邮箱->设置->账户页
2. 需要注意的几点:1)附件的增加方式 2)NetworkCredential的设置; 3)需要显式的设置发送端口号; 4)发送完成后的附件释放Dispose
public bool Sendmail(String strAttachfile)
{
String mailFrom = "12345@qq.com";
String mailTo = "34567@sina.com";
MailMessage mm = new MailMessage(mailFrom, mailTo);
mm.Subject = "Test mail";
mm.Body = "Please Check attachment.";
Attachment dataAttachment = new Attachment(strAttachfile);
mm.Attachments.Add(dataAttachment); //附件需要用Add的方式增加到邮件中
SmtpClient sc = new SmtpClient("smtp.qq.com");
sc.Port = 587; //需要显式的设置端口号,否则也不能发送成功
sc.UseDefaultCredentials = false;
sc.EnableSsl = true;
sc.Credentials = new NetworkCredential(mailFrom, "sdagdgfhgjhgkhgkghg");//QQ smtp 授权码,在邮箱设置SMTP时获得,不是发件人的邮箱密码
try
{
sc.Send(mm);
dataAttachment.Dispose();//附件发送完成后,需要释放,否则相关文件会是用户锁定状态
return true;
}
catch (Exception err)
{
AuthoriyService.LogInfo(err.Message,"Send Mail");
return false;
}
}