C# SMTP-E-Mail-Versand code nicht für Yahoo-Mail, aber es funktioniert gut für andere Server, kann jemand helfen?
Ich verwende diesen code zum senden einer SMTP-E-Mail über die yahoo-SMTP-server, es ist für ein persönliches Projekt, das ich Schreibe.
using System.Net.Mail;
using System.Net;
SmtpClient theClient = new SmtpClient("smtp.mail.yahoo.com", 465);
theClient.UseDefaultCredentials = false;
theClient.Credentials = new NetworkCredential("username", "password");
theClient.EnableSsl = true;
MailMessage theMessage = new MailMessage("[email protected]",
"[email protected]");
theMessage.Subject = "Dave test from C# subject";
theMessage.Body = "Dave test from C# body";
theClient.Send(theMessage);
Es ist alles ziemlich standard-code für das senden von SMTP-E-Mail, aber... der server scheint ein Fehler ausgelöst. Es terminiert die Verbindung. Dies geschieht nicht, wenn ich andere SMTP-Server, wie Gmail, Windows Live oder diverse andere ISP Smtp-Server.
Dies ist die Ausnahme und die stapelablaufverfolgung:
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at ConsoleApplication1.Program.Main(String[] args) in E:\dev\ARCSoftware.FTPProcessor\ConsoleApplication1\Program.cs:line 28
Ich weiß, das problem ist nicht die Umwelt-aber wie kann ich senden auf dem gleichen server mit exakt diesen Einstellungen mit Outlook Express. Ich Frage mich, ob ich schicken müssen ein Zertifikat oder so etwas?
Wenn Sie, oder jemand Sie wissen, wo Sie irgendwelche Ideen hat, über diese ich würde mich sehr über etwas Hilfe.
Sind die NetworkCredential-Parameter korrekt? user-name die vollständige E-Mail-Adresse
Vielen Dank für den input chaps. Ja, ich habe überprüft Ihre Unterlagen und Sie geben zu, verwenden Sie den Benutzernamen ohne das @ - yahoo.com. Wie gesagt, es funktioniert wenn Outlook Express mit dem extact gleiche Einstellungen.
Ist es eine Yahoo-Plus-account an, oder nur die freien? Ich weiß, dass POP3 nur für die Yahoo-Plus-accounts und Frage mich, ob das gleiche gilt für die SMTP-Seite zu?
Sind Sie absolut sicher, dass Sie senden können E-Mail in Outlook? Es war mein Verständnis, dass Sie hatte, zu aktualisieren, um Yahoo Mail Plus, verwenden Sie ein Drittanbieter-client.
InformationsquelleAutor David Honess | 2011-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht unterstützt durch 465, aber die folgenden details veröffentlichen, einen workaround
Wie kann ich senden E-Mails über SMTP mit SSL den .NET Framework?
UPDATE: Dieser link details, warum es funktionieren könnte, über Outlook Express, aber nicht durch das System.Net.E-Mail
http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx
Das alte System.Web.E-Mail/CDO Methode funktioniert, aber der gesamte namespace ist veraltet seit 2.0. Es wäre wahrscheinlich gut für dieses Projekt (ein "Persönliches Projekt"), aber ich würde nicht verwenden Sie es auf alles, was Los ist, um die Produktion.
InformationsquelleAutor statto
InformationsquelleAutor jacobsgriffith
Port 465 wird nicht unterstützt vom System.Net.E-Mail.SmtpClient.
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl.aspx
Aus dem Abschnitt "Bemerkungen":
Bearbeiten:
Sie könnten versuchen, mit port 587 statt (wenn Yahoo unterstützt).
InformationsquelleAutor The Moof
Ich hatte das gleiche problem, bis ich den port auf 587 und deaktiviert SSL.
InformationsquelleAutor man910
Ich denke, Sie sollten wieder
using System.Web.Mail
können Sie control-Felder, die nicht zugänglich sind durch die neuere System.Net.Versuchen Sie mit diesen spielen. Zum Beispiel könnten Sie versuchen, diese:
(verwenden Sie dokumentiert ist hier, Felder sind dokumentiert hier)
InformationsquelleAutor Paolo Falabella