Frage

ich bekommen kann sowohl System.Net.Mail und System.Web.Mail mit GMail zu arbeiten, aber ich kann mit smtp.att.yahoo.com nicht bekommen sie beide zu arbeiten.

Ich erhalte die SMTP-Einstellungen aus meinen eigenen Web.config Schlüsseln. Diese Einstellungen arbeiten, wenn ich System.Web.Mail senden verwenden, aber nicht mit System.Net.Mail.

    <add key="SmtpServer" value="smtp.att.yahoo.com"/>
    <add key="SmtpServerAuthenticateUser" value="ctrager@sbcglobal.net"/>
    <add key="SmtpServerPort" value="465"/>
    <add key="SmtpUseSSL" value="1"/>
    <add key="SmtpServerAuthenticatePassword" value="MY PASSWORD"/>

Hier ist der Code, meine Einstellungen packt, und arbeitet mit GMail, schlägt mit att.yahoo:

        SmtpClient smtp;

        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServer", "")))
        {
           smtp = new SmtpClient(Util.get_setting("SmtpServer", ""));
        }
        else
        {
           smtp = new SmtpClient();
        }


        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerAuthenticatePassword", "")))
           smtp.Credentials = new System.Net.NetworkCredential(
               Util.get_setting("SmtpServerAuthenticateUser", ""), 
               Util.get_setting("SmtpServerAuthenticatePassword", ""));

        if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerPort", "")))
           smtp.Port = int.Parse(Util.get_setting("SmtpServerPort", ""));

        if (Util.get_setting("SmtpUseSSL", "0") == "1")
           smtp.EnableSsl = true;

        smtp.Send(message);

Ist das mein Problem?

http://blogs.msdn.com/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

War es hilfreich?

Lösung

Ich habe die Antwort gelernt. Die Antwort lautet:

Da System.Net.Mail nicht unterstützt "implizite" SSL, nur "explicit" SSL.

Andere Tipps

Die bisherigen Antworten implizite und explizite SSL-Verbindungen über System.Net.Mail betreffend ist absolut richtig. Die Art und Weise konnte ich durch dieses Hindernis bekommen, und ohne die jetzt veraltet System.Web.Mail zu verwenden, war es, die CDO (Collaborative Data Objects) zu verwenden.

ich ausführlich und gab ein Beispiel auf einem anderen Stapelüberlauf Post ( GMail SMTP über C # .Net Fehler auf allen Ports ), wenn neugierig. Andernfalls können Sie direkt mit dem KB-Artikel unter http://support.microsoft.com/kb/310212 gehen .

Hope, das hilft!

Gimel Antwort ist von hinten nach vorne. Er sagt, das neue System verwenden. Net .mail Bibliothek, aber das Problem ist, dass System vorhanden. Net .mail funktioniert nicht für SSL auf Port 465, wie System. Web .mail did / funktioniert!

Ich habe meinen Kopf gegen diesen ganzen Tag geschlagen und für identische Systemeinstellungen. Web .mail WORKS und System. Net .mail nicht funktioniert (zumindest für den SMTP-Server mit) teste ich habe, und hier dachte ich, dass ich immer auf Microsofts neuestes Angebot Upgrade sollte das beste im Leben zu bekommen. : - (

Das Link zu dem M $ Blog scheint es zu erklären, alle; "System.Net.Mail unterstützt nur‚Explicit SSL‘." und ich nehme an der SMTP-Server-I-Tests wurden mit will Implicit SSL. (Es ist ein Yahoo-Server btw).

Da „Upgrade“ auf die neue API wird ohne Zweifel bricht Funktionalität für Benutzer, die Server haben, die implizite SSL erfordert es wie ein Schritt scheint rückwärts zu „Upgrade“ in diesem Fall. Wenn Sie immer noch nur mit Warnungen kompilieren können, deaktivieren Sie einfach diese Warnungen (0618, wenn ich mich recht erinnere) und halten Sie auf Lkw-Transporte. Oh, und Sie können Ihre Anwendung sicherstellen zu prüfen, laufen immer gegen die .NET-Framework-Version mit haft Konfigurationsdatei erstellt und getestet, nur so in Zukunft, wenn M $ zerreißt, um die alte API Ihre Anwendung sicher ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top