C# 在ASP.NET C中发送电子邮件#

C# 在ASP.NET C中发送电子邮件#,c#,asp.net,C#,Asp.net,我正在为我的网站的访问者创建一个联系人页面,以便他们向我发送电子邮件(C#)。尝试时,我得到了一个关于EHLO参数的错误。这是我的密码: 我得到了一个错误: 服务器响应为:语法无效的EHLO参数 求求你,救命 try { MailMessage _email = new MailMessage(); String MessageString = ""; MessageString = "<br>"; Messag

我正在为我的网站的访问者创建一个联系人页面,以便他们向我发送电子邮件(C#)。尝试时,我得到了一个关于EHLO参数的错误。这是我的密码:

我得到了一个错误:

服务器响应为:语法无效的EHLO参数

求求你,救命

try
    {
        MailMessage _email = new MailMessage();
        String MessageString = "";
        MessageString = "<br>";
        MessageString += "<b>Message from " + champNom.Value + "</b><br /><br />";
        MessageString += "<br/><br/>";
        MessageString += champMail.Text;
        _email.Subject = "Mail from " + champNom.Value + " (Email adress: " + champEmail.Text + ")";
        _email.From = new System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings["SenderForEmail"].ToString(), "MyName");
        _email.To.Add(new System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings["AdminForEmail"].ToString(), "MyName"));
        if (chkCCMyself.Checked) {
           _email.CC.Add(new System.Net.Mail.MailAddress(champEmail.Text, champNom.Value));
        }
        _email.Body = MessageString;
        _email.IsBodyHtml = true;
        System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
        smtp.EnableSsl = false;
        //smtp.UseDefaultCredentials = true;
        //smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Host = System.Configuration.ConfigurationManager.AppSettings["HostForEmail"].ToString();
        smtp.Port = 587;
        smtp.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["SenderForEmail"].ToString(), System.Configuration.ConfigurationManager.AppSettings["SenderPswdForEmail"].ToString());
        smtp.Send(_email);
        Page.RegisterStartupScript("UserMsg", "<script>alert('Mail envoyé avec succès...');if(alert){ window.location='contact.aspx';}</script>");
    }catch(Exception err){
        champMail.Text += Environment.NewLine + err.Message;
    }
试试看
{
MailMessage _email=newmailmessage();
字符串MessageString=“”;
MessageString=“
”; MessageString+=“来自“+champNom.Value+”

”的消息; MessageString+=“

”; MessageString+=champMail.Text; _email.Subject=“邮件发件人”+champNom.Value+“(电子邮件地址:“+champEmail.Text+”); _email.From=new System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings[“SenderForEmail”].ToString(),“MyName”); _email.To.Add(新的System.Net.Mail.MailAddress(System.Configuration.ConfigurationManager.AppSettings[“AdminForEmail”].ToString(),“MyName”); 如果(chkCCMyself.已选中){ _email.CC.Add(新的System.Net.Mail.MailAddress(champEmail.Text,champNom.Value)); } _email.Body=MessageString; _email.IsBodyHtml=true; System.Net.Mail.SmtpClient smtp=新系统.Net.Mail.SmtpClient(); smtp.EnableSsl=false; //smtp.UseDefaultCredentials=true; //smtp.DeliveryMethod=SmtpDeliveryMethod.Network; smtp.Host=System.Configuration.ConfigurationManager.AppSettings[“HostForEmail”].ToString(); smtp.Port=587; smtp.Credentials=new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings[“SenderForEmail”].ToString(),System.Configuration.ConfigurationManager.AppSettings[“SenderSwdForemail”].ToString()); smtp.Send(_email); RegisterStartupScript(“UserMsg”,“alert('Mail-emissionéavec-success..);if(alert){window.location='contact.aspx';}”); }捕获(异常错误){ champMail.Text+=Environment.NewLine+err.Message; }
提前感谢

如本文所述

如果您的电子邮件中存在被拒绝的EHLO或HELO问题,这是由语法无效的参数引起的

1.主机名可能包含下划线(\)

2.这不是标准做法,在您的领域有uu

3.例如takizo_mail.takizo.com

4.大多数邮件服务器拒绝带有下划线的主机名


5.可能是Windows管理员

确保服务器名称中只有拉丁字符,并且没有下划线等特殊符号。

MailMessage msg=new MailMessage(“from@a.com", "To@y.com");
        MailMessage msg = new MailMessage("from@a.com", "To@y.com");
        msg.Subject = "Intraday";
        msg.Sender = new MailAddress("sender@y.com");
        msg.IsBodyHtml = false; //to preserve line breaks and to avoid the need for <br>s
        msg.Body = "Body";
        SmtpClient client = new SmtpClient("Server");
        client.Send(msg);
msg.Subject=“当日”; msg.Sender=新邮件地址(“sender@y.com"); msg.IsBodyHtml=false//保留换行符并避免使用
s msg.Body=“Body”; SmtpClient=新的SmtpClient(“服务器”); client.Send(msg);
可能相关:列出了5个可能的原因,1到4个难点的意思都是一样的谢谢;但我的主机名没有下划线,谢谢大家。关键是我的笔记本电脑名是myName_pc:我刚刚重命名它,它工作了。谢谢,但我的主机名或服务器名中没有下划线