我正在使用visual studio 2012和asp.net framework 4.5。我想创建一个表单,每当用户单击提交按钮时,都应该向我发送一封电子邮件。我在编码中使用谷歌smtp设置但我得到一个错误,如“发送邮件失败”。我正在粘贴我的编码以供参考
protected void Button1_Click1(object sender, EventArgs e)
{
MailMessage mailmessage = new MailMessage()
{
Subject = txtName.Text.ToString().Trim(),
Body = txtComment.Text.ToString().Trim(),
IsBodyHtml = false
};
mailmessage.To.Add(new MailAddress(Label1.Text));
mailmessage.To.Add("myusername.com");
SmtpClient smtpClient = new SmtpClient();
smtpClient.SendAsync(mailmessage, null);
Response.Write("Your mail has been sent successfuly");
Label1.Text = "Your mail has been successfully sent..!!";
this.txtComment.Text = "";
this.txtName.Text = "";
网络配置文件
<system.net>
<mailSettings>
<smtp from="myusername.com">
<network host="smtp.gmail.com"
port="465"
userName=""
password=""
enableSsl="true"/>
</smtp>
</mailSettings>
我已尝试将端口设为587但我收到同样的错误。
答案 0 :(得分:0)
正如有人建议的那样,请在发送邮件之前尝试检查Smtp客户端凭据。我在SmtpClient.SendAsync
过去也遇到过一些问题。请尝试使用SmtpClient.Send
。否则我的代码中确实没有问题。
编辑:您似乎创建了2个SmtpClients。一个在页面加载,一个在buttonClick方法。第二个人也知道凭证吗?
答案 1 :(得分:0)
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="Your Email">
<network defaultCredentials="false" host="smtp.gmail.com" port="587" userName="Your Email" password="Your Password"></network>
</smtp>
</mailSettings>
</system.net>
在网络配置中尝试以上代码