c#邮件没有发送SMTP
本文关键字:SMTP | 更新日期: 2023-09-27 18:04:00
我正试图以c#编程方式发送电子邮件,但我找不到我错过的东西。下面是相同的
的代码string SendEmail(string toAddress, string subject, string body, string senderID)
{
string result = "Message Sent Successfully..!!";
const string senderPassword = "mypassword";
try
{
SmtpClient smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new System.Net.NetworkCredential(senderID, senderPassword),
Timeout = 30000,
};
MailMessage message = new MailMessage(senderID, toAddress, subject, body);
smtp.Send(message);
}
catch (SmtpException e)
{
result = "Smtp status code " + e.StatusCode;
}
catch (Exception ex)
{
result ="Error sending email " +ex.ToString();
}
return result;
}
我试着看到结果变量里面的值它有两个值
- Smtp状态码一般故障
- 操作已经超时//如果我们注释代码catch (SmtpException e)
如果我查看msdn网站的SMTP状态码"一般失败"SMTP状态码解释,我们会发现状态码意味着主机找不到,我尝试做nslookup和主机"smtp.gmail.com"是可用的,可以从telnet访问。
程序中缺少什么?
下面是使用c#编程发送邮件的代码。它在我的机器上运行良好。
try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("email");
mail.To.Add("email");
mail.Subject = "Subject";
mail.Body = "Message";
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("email", "password");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
return true;
}
catch (Exception ex)
{
return "false";
}
MailMessage mail = new MailMessage();
mail.From = new MailAddress("frommail", "fromText");
mail.To.Add(toEMailId);
mail.Subject = "TestSubject";
mail.IsBodyHtml = true;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.Body = "Test mailBody";
//SMTPServer
SmtpClient SmtpServer = new SmtpClient("yourSMTPServer");
//SMTPPort
SmtpServer.Port = Convert.ToInt32("PostNumber");
SmtpServer.UseDefaultCredentials = false;
//Set SMTP Username and Password
SmtpServer.Credentials = new System.Net.NetworkCredential("SMTPUserName","SMTPPassword");
//EnableSSL
SmtpServer.EnableSsl = false;
SmtpServer.Send(mail);
这是我的代码,你可以试试。
public static bool SendEmail(string subject, MailAddress from, List<string> to,List<string> cc, string body, Attachment attachment)
{
try
{
MailMessage mail = new MailMessage();
mail.Subject = subject;
mail.From = from;
foreach (var item in to)
mail.To.Add(item);
foreach (var item in cc)
mail.CC.Add(item);
mail.IsBodyHtml = true;
mail.Body = body;
if (attachment != null)
mail.Attachments.Add(attachment);
SmtpClient mailClient = new SmtpClient();
mailClient.Port = 587;//maybe 25
mailClient.Host = "smtp.gmail.com";
mailClient.EnableSsl = true;
mailClient.Credentials = new NetworkCredential("EmailAddress", "EmailPassword");
//mailClient.Credentials = new NetworkCredential("a@gmail.com", "1234");
try
{
mailClient.Send(mail);
}
catch (Exception ex)
{
return false;
}
return true;
}
catch { return false; }
}