我正在尝试从Windows7中的asp.net发送电子邮件。经过几个小时的谷歌搜索后,我发现Windows 7中没有SMTP服务器。我已经尝试了以下一段代码并出现了一个主要错误“无法建立连接,因为目标机器主动拒绝了它74.125.25.109:587”
代码:1
private void sendmail()
{
string email = "mymail@gmail.com";
string password = "mygmail_password";
var loginInfo = new NetworkCredential(email, password);
var msg = new System.Net.Mail.MailMessage();
var smtpClient = new SmtpClient("smtp.gmail.com", 587);
msg.From = new MailAddress(email);
msg.To.Add(new MailAddress("recipient@gmail.com"));
msg.Subject = "my mail subject";
msg.Body = "my mail body";
msg.IsBodyHtml = true;
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = loginInfo;
smtpClient.Send(msg);
}
代码:2
private void sendthemail()
{
System.Net.Mail.MailMessage mailObj = new System.Net.Mail.MailMessage(
txtFrom.Text,txtEmail.Text,txtSubject.Text, txtBody.Text);
SmtpClient SMTPServer = new SmtpClient("localhost");
try
{
SMTPServer.Send(mailObj);
SMTPServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory;
SMTPServer.PickupDirectoryLocation = "C:\\inetpub\\mailroot\\Pickup";
SMTPServer.Host = "127.0.0.1"; // localhost
SMTPServer.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
Label1.Text = "Mail sent";
}
catch (Exception ex)
{
Label1.Text = ex.ToString();
}
}
我的问题是:
- 我是否需要一台SMTP服务器使用gmail通过ASP.Net发送邮件?
- 我有什么需要下载的吗?
- 我应该在代码中添加任何内容吗?
- 如何检测系统中正在运行的SMTP服务器?
我已经下载了很多应用程序,例如hMailServer,Smtp4dev,Windows SMTP服务器,不知道该怎么做。请帮助!!
答案 0 :(得分:1)
不,因为您使用的是System.Net.Mail类,并且您在代码中提供了gmail.smpt服务器。 无需下载 您可以检入您的服务(services.msc)smtp服务器服务正在运行。
当您尝试发送电子邮件时,请向您发送错误,这将有助于找出真正的问题。
答案 1 :(得分:1)
您是否在gmail帐户上明确启用了smtp。据我所知,在你可以使用它之前需要启用它。 我建议你先检查一下gmail中的设置,因为你的代码看起来很好。
我也尝试删除端口号。因为您使用的是EnableSSL属性,所以不需要它。
var smtpClient = new SmtpClient(“smtp.gmail.com”);
- 我是否需要一台SMTP服务器使用gmail通过ASP.Net发送邮件? - 您确实需要SMTP服务器,但不需要在本地计算机上安装它。
- 有什么我必须下载的吗? - 不。
- 我应该在代码中添加任何内容吗? - 尝试更改上面的行。
- 如何检测系统中正在运行的SMTP服务器? - 检查系统上运行的服务,看看那里是否有SMTP服务器。