C# SMTP服务器需要安全连接或th…;was:5.5.1需要认证

C# SMTP服务器需要安全连接或th…;was:5.5.1需要认证,c#,smtp,C#,Smtp,我见过很多解决方案,每一个都尝试过,但没有一个对我的案例有效 我尝试了以下几点,但都没有成功 打开 UseDefaultCredentials=false;也不管用 启用步骤2验证生成的应用程序密码也不起作用 有人能帮我弄清楚吗 <appSettings> <add key="MailsenderID" value="myemail@gmail.com"/> <add key="Password" value="my password"/>

我见过很多解决方案,每一个都尝试过,但没有一个对我的案例有效

我尝试了以下几点,但都没有成功

  • 打开
  • UseDefaultCredentials=false;也不管用
  • 启用步骤2验证生成的应用程序密码也不起作用
有人能帮我弄清楚吗

<appSettings>
   <add key="MailsenderID" value="myemail@gmail.com"/>
   <add key="Password" value="my password"/>
   <add key="Host" value="smtp.gmail.com"/>
   <add key="Port" value="587"/>
</appSettings>


public bool SendMail() 
{
    bool isSend = false;

    System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage();
    MailAddress mFromAddress = new MailAddress(Convert.ToString(ConfigurationManager.AppSettings["MailsenderID"]));
    MailAddress mCC = null;
    MailAddress mBCC = null;
    if (this.Attachment.ToString().Trim().Length > 0) 
    {
        string strAttachment = this.Attachment.ToString().Trim();
        foreach(string sAttachment in strAttachment.Split(",".ToCharArray())) 
        {
            if (!String.IsNullOrWhiteSpace(sAttachment.Trim())) 
            {
                Attachment attach = new Attachment(sAttachment.ToString());
                email.Attachments.Add(attach);
            }
        }
    }

    string MailLogo = "";
    string MailPassword = Convert.ToString(ConfigurationManager.AppSettings["Password"]);
    string MailUserName = Convert.ToString(ConfigurationManager.AppSettings["MailsenderID"]);
    string MailHost = Convert.ToString(ConfigurationManager.AppSettings["Host"]);
    string MailPort = Convert.ToString(ConfigurationManager.AppSettings["Port"]);

    email.From = new MailAddress(Convert.ToString(ConfigurationManager.AppSettings["MailsenderID"]));
    email.To.Add(this.mailTo.ToLower().Replace(" ", ""));
    email.Subject = this.subject;
    if (this.bcc.Length > 0) 
    {
        string[] emails = this.bcc.Split(',');
        foreach(string emBcc in emails) 
        {
            if (emBcc.Length > 0) 
            {
                mBCC = new MailAddress(emBcc);
                email.Bcc.Add(mBCC);
            }
        }
    }
    if (this.cc.Length > 0) 
    {
        string[] emails = this.cc.Split(',');
        foreach(string emCc in emails) 
        {
            if (emCc.Length > 0) 
            {
                mCC = new MailAddress(emCc);
                email.CC.Add(mCC);
            }
        }
    }

    email.IsBodyHtml = true;
    email.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
    email.Body = "<html><head></head><body>" + this.body + "</body></html>";
    email.Priority = System.Net.Mail.MailPriority.High;

    SmtpClient ObjMail = new SmtpClient();
    ObjMail.EnableSsl = true;

    NetworkCredential credential = new NetworkCredential(MailUserName, MailPassword);
    ObjMail.Credentials = credential;
    ObjMail.Host = MailHost;
    ObjMail.DeliveryMethod = SmtpDeliveryMethod.Network;
    ObjMail.UseDefaultCredentials = false;
    ObjMail.Port = Convert.ToInt16(MailPort);
    ObjMail.Send(email);
    isSend = true;

    return isSend;
}

公共bool SendMail()
{
bool-isSend=false;
System.Net.Mail.MailMessage email=新系统.Net.Mail.MailMessage();
MailAddress mFromAddress=新的邮件地址(Convert.ToString(ConfigurationManager.AppSettings[“MailsenderID]”);
MailAddress mCC=null;
邮件地址mBCC=null;
if(this.Attachment.ToString().Trim().Length>0)
{
string strAttachment=this.Attachment.ToString().Trim();
foreach(strAttachment.Split(“,”.ToCharArray())中的字符串连接)
{
如果(!String.IsNullOrWhiteSpace(sAttachment.Trim()))
{
附件附件=新附件(sAttachment.ToString());
电子邮件。附件。添加(附加);
}
}
}
字符串mailbogo=“”;
字符串MailPassword=Convert.ToString(ConfigurationManager.AppSettings[“Password”]);
字符串MailUserName=Convert.ToString(ConfigurationManager.AppSettings[“MailsenderID]”);
字符串MailHost=Convert.ToString(ConfigurationManager.AppSettings[“主机”]);
字符串MailPort=Convert.ToString(ConfigurationManager.AppSettings[“端口]);
email.From=新邮件地址(Convert.ToString(ConfigurationManager.AppSettings[“MailsenderID]”);
email.To.Add(this.mailTo.ToLower().Replace(“,”);
email.Subject=this.Subject;
如果(this.bcc.Length>0)
{
字符串[]emails=this.bcc.Split(',');
foreach(电子邮件中的字符串emBcc)
{
如果(emBcc.Length>0)
{
mBCC=新邮件地址(emBcc);
email.Bcc.Add(mBCC);
}
}
}
如果(this.cc.Length>0)
{
string[]emails=this.cc.Split(',');
foreach(电子邮件中的字符串emCc)
{
如果(emCc.Length>0)
{
mCC=新邮件地址(emCc);
email.CC.Add(mCC);
}
}
}
email.IsBodyHtml=true;
email.DeliveryNotificationOptions=DeliveryNotificationOptions.OnFailure;
email.Body=“”+this.Body+”;
email.Priority=System.Net.Mail.MailPriority.High;
SmtpClient ObjMail=新的SmtpClient();
ObjMail.EnableSsl=true;
NetworkCredential credential=新的NetworkCredential(MailUserName、MailPassword);
ObjMail.Credentials=凭证;
ObjMail.Host=MailHost;
ObjMail.DeliveryMethod=SmtpDeliveryMethod.Network;
ObjMail.UseDefaultCredentials=false;
ObjMail.Port=Convert.ToInt16(MailPort);
发送(电子邮件);
isSend=真;
返回isSend;
}
例外情况:

SMTP服务器需要安全连接或 客户端未经过身份验证。服务器响应为:5.5.1 需要身份验证。了解更多信息,请访问


请更好地解释一下,他们中没有一个对我的案子有用。您是否有要共享的错误消息?您好,这里是异常消息“SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。有关详细信息,请访问“可能不重要,但SmtpClient.Port是整数,而不是短端口(Convert.ToInt32)”你尝试过gmail(465)的SSL端口吗?也许这对你有帮助:是的,我以前使用过端口465,但它会给出以下异常消息:“发生错误”。异常消息:“操作超时”。异常类型:“System.Net.Mail.SmtpException”请更好地解释,它们中没有一个对我的情况有用。您是否有要共享的错误消息?您好,这里是异常消息“SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。有关详细信息,请访问“可能不重要,但SmtpClient.Port是整数,而不是短端口(Convert.ToInt32)”您是否尝试过gmail(465)的SSL端口?也许这对您有帮助:是的,我以前使用过端口465,但它会显示以下异常消息:“出现错误”。异常消息:“操作已超时”。异常类型:“System.Net.Mail.SmtpException”