无法发送asp.net应用程序

时间:2013-10-01 05:40:01

标签: asp.net web smtp

我想发送电子邮件,但它显示以下错误:

try
{
     string filename = Server.MapPath("~/App_Data/FeedBack.txt");
     string mailbody = System.IO.File.ReadAllText(filename);
     mailbody = mailbody.Replace("##Name##", txtName.Text);
     mailbody = mailbody.Replace("##Email##",txtEmail.Text);
     mailbody = mailbody.Replace("##contact##",txtContact.Text);
     mailbody = mailbody.Replace("##Commnect##",txtSuggestion.Text);
     MailMessage myMessage = new MailMessage();
     myMessage.Subject = "Responce from website";
     myMessage.Body = mailbody;
     myMessage.From = new MailAddress("amitverma0511@gmail.com","Amit Kumar");
     myMessage.To.Add(new MailAddress("amitverma1150@gmail.com", "Amit Verma"));
     SmtpClient mysmptclient = new SmtpClient("localhost");
     mysmptclient.Host = "smtp.gmail.com";
     mysmptclient.Port = 587;
     mysmptclient.Credentials = new System.Net.NetworkCredential("amitverma0511@gmail.com", "Myemailpassword");

     mysmptclient.Send(myMessage);
     formatTable.Visible = false;
     lblMail.Text = "Your Feedback has been sent successfully";
     lblMail.ForeColor = Color.Green;
}
catch(Exception expt)
{
     lblMail.Text = "unable to sent the feedback .Check your smpt server"+expt.Message;
     lblMail.ForeColor = Color.Red;
}

我的web.config文件如下所示:

<system.net>
  <mailSettings>
    <smtp from="amitverma0511@gmail.com">
      <network host="smtp.gmail.com"  port='587' password="myemailpass" userName="amitverma0511@gmail.com"/>
    </smtp>
  </mailSettings>
</system.net>

1 个答案:

答案 0 :(得分:0)

据我所知,您使用localhost(您的IIS)作为SMTP服务器来覆盖您的web.config设置。 如果您尚未将IIS配置为SMTP服务器,则这自然不起作用。 但是,如果您想使用localhost而不是谷歌服务器,请使用以下3行:

SmtpClient MySmtpClient = new SmtpClient();
MySmtpClient.UseDefaultCredentials = true;
MySmtpClient.Send(mailMessage);

您应该从localhost删除字符串SmtpClient mysmptclient = new SmtpClient("localhost");,如果所有其他设置都正确,它应该可以正常工作。

可以找到更多信息here