最基本的小例子,帮助上的例子看着可真够乱的:
代码虽然简单,也能正常运行,但也产生了一些疑问,主要是SmtpClient的参数。我用公司的服务器、用户名和密码能正确的发送邮件(我测试了发给自己和发给163邮箱),但使用163的邮件服务器(smtp.163.com)、用户名和密码时,总是提示服务器拒绝发件人,但我用这套用户名密码可以通过mail.163.com登录。怀疑163做了什么设置,不让代码调用它的邮件服务。
private void SendMail()
{
MailMessage message = new MailMessage("发件人电子邮件地址", "收件人电子邮件地址");
message.Subject = "邮件标题";
message.Body = "邮件内容";
message.SubjectEncoding = Encoding.GetEncoding("gb2312");
message.BodyEncoding = Encoding.GetEncoding("gb2312");
message.IsBodyHtml = true;
message.Priority = MailPriority.Normal;
SmtpClient clint = new SmtpClient("邮件服务器名");
clint.UseDefaultCredentials = false;
clint.Credentials = new System.Net.NetworkCredential("邮件用户名", "登录密码");
clint.DeliveryMethod = SmtpDeliveryMethod.Network;
clint.Send(message);
message.Dispose();
}
{
MailMessage message = new MailMessage("发件人电子邮件地址", "收件人电子邮件地址");
message.Subject = "邮件标题";
message.Body = "邮件内容";
message.SubjectEncoding = Encoding.GetEncoding("gb2312");
message.BodyEncoding = Encoding.GetEncoding("gb2312");
message.IsBodyHtml = true;
message.Priority = MailPriority.Normal;
SmtpClient clint = new SmtpClient("邮件服务器名");
clint.UseDefaultCredentials = false;
clint.Credentials = new System.Net.NetworkCredential("邮件用户名", "登录密码");
clint.DeliveryMethod = SmtpDeliveryMethod.Network;
clint.Send(message);
message.Dispose();
}
代码虽然简单,也能正常运行,但也产生了一些疑问,主要是SmtpClient的参数。我用公司的服务器、用户名和密码能正确的发送邮件(我测试了发给自己和发给163邮箱),但使用163的邮件服务器(smtp.163.com)、用户名和密码时,总是提示服务器拒绝发件人,但我用这套用户名密码可以通过mail.163.com登录。怀疑163做了什么设置,不让代码调用它的邮件服务。