在C#net中发送邮件失败

在C#net中发送邮件失败,c#,email,C#,Email,两周前,我发送电子邮件的代码在psat中正常工作。但现在它显示了一个错误,如 发送邮件失败 我不知道为什么会出现这个问题。上周发布了一些新的防火墙策略,是否正是因为这些策略才引发了问题?我该怎么办 这是我的密码: protected void Button1_Click(object sender, EventArgs e) { try { if (TextBox1.Text == "") {

两周前,我发送电子邮件的代码在psat中正常工作。但现在它显示了一个错误,如

发送邮件失败

我不知道为什么会出现这个问题。上周发布了一些新的防火墙策略,是否正是因为这些策略才引发了问题?我该怎么办

这是我的密码:

 protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            if (TextBox1.Text == "")
            {

                string alertmessage = "";
                alertmessage = "Email ID. cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox1.Focus();
            }
            else if (TextBox2.Text == "")
            {

                string alertmessage = "";
                alertmessage = "CC To cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox2.Focus();
            }
            else if (TextBox3.Text == "")
            {

                string alertmessage = "";
                alertmessage = "Subject cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox3.Focus();
            }
            else if (TextBox4.Text == "")
            {

                string alertmessage = "";
                alertmessage = "Message Body cannot be blank ";
                this.CreateMessageAlert(this, alertmessage, "alertKey");
                TextBox4.Focus();
            }
            //else if (upSignature.FileName == "")
            //{
            //    ctr = 1;
            //    string alertmessage = "";
            //    alertmessage = "Attachment  Missing...";
            //    this.CreateMessageAlert(this, alertmessage, "alertKey");
            //    upSignature.Focus();
            //}

            else
            {


                string photo = "Enquiry" + Session["MRNO"].ToString() + FileUpload1.FileName;
                string strpath = Request.MapPath("~/");
                FileUpload1.SaveAs(strpath + "/Enquiry/" + photo);


                try
                {
                    MailMessage mail = new MailMessage();
                    mail.To.Add(new MailAddress(TextBox1.Text.Trim()));
                    mail.From = new MailAddress("XXXXXXX");
                    mail.Subject = "Enquiry for MRNO " + " " + " " + Session["MRNO"].ToString() + " " + " " + "Reg.";
                    mail.CC.Add(TextBox2.Text.Trim());
                    mail.Body = TextBox4.Text.Trim();

                        mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
                        mail.Attachments.Add(new Attachment(FileUpload2.PostedFile.InputStream, FileUpload2.FileName));

                    //Attachment attach = new Attachment(strpath + "/Enquiry/" + photo);
                    //mail.Attachments.Add(attach);


                    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);

                    smtp.EnableSsl = true;

                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials = new NetworkCredential("XXXXXX", "XXXXXXX");

                    smtp.Send(mail);

                    string alertmessage = "";
                    alertmessage = "Mail Has Been Sent";
                    this.CreateMessageAlert(this, alertmessage, "alertKey");


                    //   Page.RegisterStartupScript("close", "<script language=javascript>self.close();</script>");

                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }
            }
        }
        catch (Exception ex1)
        {
            Response.Write(ex1.Message);
        }

    }
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
尝试
{
如果(TextBox1.Text==“”)
{
字符串alertmessage=“”;
alertmessage=“电子邮件ID.不能为空”;
this.CreateMessageAlert(this,alertmessage,“alertKey”);
TextBox1.Focus();
}
else if(TextBox2.Text==“”)
{
字符串alertmessage=“”;
alertmessage=“抄送对象不能为空”;
this.CreateMessageAlert(this,alertmessage,“alertKey”);
TextBox2.Focus();
}
else if(TextBox3.Text==“”)
{
字符串alertmessage=“”;
alertmessage=“主题不能为空”;
this.CreateMessageAlert(this,alertmessage,“alertKey”);
TextBox3.Focus();
}
else if(TextBox4.Text==“”)
{
字符串alertmessage=“”;
alertmessage=“消息正文不能为空”;
this.CreateMessageAlert(this,alertmessage,“alertKey”);
TextBox4.Focus();
}
//else if(upSignature.FileName==“”)
//{
//ctr=1;
//字符串alertmessage=“”;
//alertmessage=“附件丢失…”;
//this.CreateMessageAlert(this,alertmessage,“alertKey”);
//向上签名。焦点();
//}
其他的
{
string photo=“Enquiry”+会话[“MRNO”].ToString()+文件上传1.FileName;
字符串strpath=Request.MapPath(“~/”);
FileUpload1.SaveAs(strpath+“/Enquiry/”+photo);
尝试
{
MailMessage mail=新的MailMessage();
mail.To.Add(新邮件地址(TextBox1.Text.Trim());
mail.From=新邮件地址(“XXXXXXX”);
mail.Subject=“查询MRNO”+“”+“”+会话[“MRNO”]。ToString()+“”+“”+“”+Reg。“;
mail.CC.Add(TextBox2.Text.Trim());
mail.Body=TextBox4.Text.Trim();
Add(新附件(FileUpload1.PostedFile.InputStream,FileUpload1.FileName));
Add(新附件(FileUpload2.PostedFile.InputStream,FileUpload2.FileName));
//附件附件=新附件(strpath+“/查询/”+照片);
//邮件。附件。添加(附件);
SmtpClient smtp=新的SmtpClient(“smtp.gmail.com”,587);
smtp.EnableSsl=true;
smtp.UseDefaultCredentials=false;
smtp.Credentials=新的网络凭据(“XXXXXX”、“XXXXXX”);
smtp.发送(邮件);
字符串alertmessage=“”;
alertmessage=“邮件已发送”;
this.CreateMessageAlert(this,alertmessage,“alertKey”);
//RegisterStartupScript(“close”、“self.close();”);
}
捕获(例外情况除外)
{
响应。写入(例如消息);
}
}
}
捕获(异常ex1)
{
Response.Write(ex1.Message);
}
}

您需要打开587端口以发送邮件。请与您的网络团队就此进行检查,并确保它已打开

我敢打赌是防火墙造成了问题。您需要打开防火墙上的587端口。@萨尼·赫图宁:您能告诉我如何打开防火墙上的587端口吗?您是否调试了引发异常的代码?这取决于防火墙本身。因为我不知道它是哪个防火墙,所以我不能帮助你。你的网络管理员应该能够帮助你允许端口流量通过防火墙-如果这确实是问题的话。此外,如果您发布异常详细信息。。这有助于诊断问题。但是雅虎和gmail可以发送和接收邮件,我的应用程序只能发送。由于我必须检查端口??请检查使用以查看端口是否打开。因此,请按照此链接中的说明更改设置,并查看Gmail是否与您的SMTP服务器配合使用,这将使您清楚地了解问题所在:)