繁体   English   中英

通过 c#.net SmtpClient 发送电子邮件无法正常工作

[英]Sending an Email via c#.net SmtpClient doesn't work properly

我有这个代码,用于从 GMX 邮件发送电子邮件到 walla 邮件。

MailMessage mail = new MailMessage("yyy@gmx.com", "yyy@walla.com");
            SmtpClient client = new SmtpClient();
            client.Port = 25;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.EnableSsl = true;
            client.Host = "mail.gmx.com";
            mail.Subject = "A new account was registered: ";
            mail.Body = string.Format("Username: {0}, Password: {1}", textBox1.Text, textBox2.Text);
            try
            {
                client.Send(mail);

            }
            catch (SmtpException ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.ToString());
            }

每当我尝试运行该代码时,都会收到一个异常,提示我需要安全连接,但我已启用 SSL。 我做错了什么? 谢谢!

如 GMX 页面所述,使用 SSL/TLS 连接时必须使用端口 587: https : //help.gmx.com/en/applications/pop3.html

  SmtpClient client = new SmtpClient();
  client.Port = 587;

我认为您还应该使用邮件帐户的凭据将凭据设置为对 SMTP 客户端进行身份验证:

client.Credentials = new NetworkCredential("username", "password");

您需要在 gmx.net 上生成特定于应用程序的密码。 它需要启用 2factor-authentication。

转到 gmx.net > 设置 > 帐户 > 密码

这是来自网站的信息文本

Für die Nutzung externer E-Mail-Programme über POP3/IMAP oder die Einbindung Ihres GMX Kalenders/Adressbuchs (mit CalDav bzw. CardDav) in ein externes Programm, können Sie hier Anwendungsspezifische Passwörundverter Um Anwendungsspezifische Passwörter verwenden zu können, muss die 2-Faktor-Authentifizierung aktiviert sein。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM