【问题标题】:Email not sending电子邮件不发送
【发布时间】:2015-03-09 06:36:38
【问题描述】:

我创建了一个联系表单,用户可以输入他/她的姓名和他们的电子邮件地址,一切正常,除了我在单击提交按钮时在某个点收到错误,下面我突出显示了哪里那个错误是。当然,出于安全考虑,我已经取出了我的密码。

 using System;
 using System.Net.Mail;

 namespace WhiteLabelConProject
 {
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            MailMessage mailMessage = new MailMessage();
            mailMessage.From = new MailAddress("martinhall1390@gmail.com");
            mailMessage.To.Add("martinhall1390@gmail.com");

            mailMessage.Body = "<b>SenderName : </b>" + txtName.Text + "<br/>"
            + "<b>Sender Email : </b>" + txtEmail.Text + "<br/>";
            mailMessage.IsBodyHtml = true;

            SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
            smtpClient.EnableSsl = true;
            smtpClient.Credentials = new     System.Net.NetworkCredential("martinhall1390@gmail.com","");
            **smtpClient.Send(mailMessage); <<<<<<<< ERROR WITH THIS BIT OF CODE**

            Label1.ForeColor = System.Drawing.Color.Blue;
            Label1.Text = "Thank you for registering";

            txtName.Enabled = false;
            txtEmail.Enabled = false;

        }
        catch(Exception ex)
        {

            //Log - Event Viewer or table
            Label1.ForeColor = System.Drawing.Color.Blue;
            Label1.ForeColor = System.Drawing.Color.Red;
            Label1.Text = "There is an unknown problem. Please try later";
        }

【问题讨论】:

  • 您遇到什么错误?您正在捕获所有异常并删除它们,从而使特定问题难以调试。
  • 对不起,基本上页面加载了很长时间,我收到的错误是“System.Net.Mail.SmtpException:操作已超时。”并且上面突出显示的“smtpClient.Send(mailMessage);”以红色显示。
  • 可能想为您的客户端尝试端口 465(而不是 587):support.google.com/a/answer/176600?hl=en。这也可能是防火墙问题。
  • 尝试将其更改为 465,它做同样的事情,你说的防火墙问题是什么,这很烦人,因为它几乎可以工作:(

标签: c# validation email smtp contact-form


【解决方案1】:

我认为这是因为代码没有主题,例如:

 mailMessage.Subject = "EmailSubject";

我还建议将“IsBodyHtml”设置为 false,因为此处的 html 代码可能存在错误。因此,您应该有以下正文代码:

 mailMessage.Body = "Sender name  :" + txtName.Text + "\n Sender email  :" + txtEmail.Text;

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 2014-08-17
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2022-11-20
    相关资源
    最近更新 更多