尝试使用 SMTP class 发送电子邮件 (C#)

Attempting to send email with SMTP class (C#)

我正在尝试使用 C# SmtpClient class 发送电子邮件。 "catch" 块在尝试 "send" 消息后执行。当我去查看异常时,InnerException 显示 "Unable to connect to the remote server",消息显示 "Failure sending mail"。 StatusCode 是 "General failure".

我是否缺少某些凭据?我是否需要为 SmtpClient 或 MailMessage 的实例设置更多字段?

代码如下:

 private void sendEmail(string recepientEmailAddress) {
        string subjectEmail = "Subject Email";
        MailAddress to = new MailAddress("example@email.com");
        MailAddress from = new MailAddress("example@example.com");

        MailMessage message = new MailMessage(from, to);
        message.Subject = subjectEmail;
        message.IsBodyHtml = true;
        message.Body = "Body example";

        try
        {
            SmtpClient sc = new SmtpClient(ConfigurationManager.AppSettings["MailServer"].ToString());
            sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
            sc.DeliveryMethod = SmtpDeliveryMethod.Network;
            sc.EnableSsl = true;
            sc.UseDefaultCredentials = true;
            sc.Send(message);
        }
        catch (Exception e)
        {
            Helpers.ErrorLogger.ProcessError(e.Message, e.StackTrace, "RegistrationController", "SendEmail");
        }
    }
private void sendEmail(string recepientEmailAddress) {
        string subjectEmail = "Subject Email";
        MailAddress to = new MailAddress("example@email.com");
        MailAddress from = new MailAddress("example@example.com");

        MailMessage message = new MailMessage(from, to);
        message.Subject = subjectEmail;
        message.IsBodyHtml = true;
        message.Body = "Body example";

        try
        {
            SmtpClient sc = new SmtpClient(ConfigurationManager.AppSettings["MailServer"].ToString());
            sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
            sc.DeliveryMethod = SmtpDeliveryMethod.Network;
            sc.EnableSsl = true;
            sc.Host="smtp.gmail.com"
            sc.port = 587;
            sc.UseDefaultCredentials = true;
            sc.Send(message);
        }
        catch (Exception e)
        {
            Helpers.ErrorLogger.ProcessError(e.Message, e.StackTrace, "RegistrationController", "SendEmail");
        }
    }

添加端口(gmail:587)

添加主机(smtp.gmail.com

如果不起作用,请尝试添加用户名和密码 变化自

sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

sc.Credentials = new System.Net.NetworkCredential("username","password")
public static bool Send()
    {
        try
        {
            var fromAddress = new MailAddress("xyz@example.com");
            var toAddress = new MailAddress("xyziahd@example.com");
            const string subject = "subjects";
            const string userName = "serverCredentail";
            const string Password = "serverpassword";
            const string body = "Body";
            var smtp = new SmtpClient
            {
                Host = "servernameexample.com",
                Port = 25,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(userName, Password)
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = body
            })
            {
                smtp.Send(message);
            }
        }
        catch(Exception ex)
        {
            return false;
        }
        return true;
    }

这段代码应该可以工作我刚刚测试过它。