我想发送电子邮件,但它显示以下错误:
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>
答案 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。