通过c#.net SmtpClient发送电子邮件不需要';我不能正常工作

通过c#.net SmtpClient发送电子邮件不需要';我不能正常工作,c#,.net,email,smtp,smtpclient,C#,.net,Email,Smtp,Smtpclient,我有这个代码,用于从GMX mail向walla mail发送电子邮件 MailMessage mail = new MailMessage("yyy@gmx.com", "yyy@walla.com"); SmtpClient client = new SmtpClient(); client.Port = 25; client.DeliveryMethod = SmtpDeliveryMethod.Network;

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

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:

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

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

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

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

这是网站上的信息文本

在外部程序中,您可以通过电子邮件发送POP3/IMAP/IMAP/Adressbuchs(mit CalDav bzw.CardDav)来获取外部程序的信息。 这是一个很好的例子,作者是2-Faktor-Authentifizierung aktiviert sein


端口25不是SSL端口,您需要找出GMail用于SSL的端口并将其设置为该端口。我在这个网站()中发现,端口可以是587或465,但它们都不能工作。它只是说我必须以一种安全的方式连接(为什么它一直告诉我?我激活了SSL!)它仍然无法工作。。。它一直告诉我:SMTP服务器需要安全连接,否则用户将无法通过身份验证。服务器响应为:需要身份验证请按照我的编辑中的说明设置凭据。它必须是您用来登录作为发件人的邮件帐户的用户名和密码。大多数SMTP服务器都需要身份验证以避免垃圾邮件和意外客户端。您是否仍会收到相同的错误?看来现在应该可以了。也许你有错误的用户名或密码?我把我的服务器改成了walla,现在它告诉我类似的事情:发送电子邮件失败。System.IO.IOException:无法从中读取数据。。。System.Net.Sockets.SocketException。。。
client.Credentials = new NetworkCredential("username", "password");