6

System.Net.MailとSystem.Web.Mailの両方をGMailで動作させることはできますが、両方をsmtp.att.yahoo.comで動作させることはできません。

自分のWeb.configキーからSMTP設定を取得します。これらの設定は、System.Web.Mailを使用して送信すると機能しますが、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"/>

これが私の設定を取得し、GMailで動作し、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);

これは私の問題ですか?

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

4

3 に答える 3

10

私は答えを学びました。答えは次のとおりです。

System.Net.Mailは「暗黙の」SSLをサポートしていないため、「明示的な」SSLのみをサポートします。

于 2008-10-06T00:43:23.200 に答える
2

System.Net.Mail を介した暗黙的および明示的な SSL 接続に関する以前の回答は完全に正しいです。私がこの障害を乗り越え、現在は廃止された System.Web.Mail を使用せずに済んだ方法は、CDO (Collaborative Data Objects) を使用することでした。

興味がある場合は、別のスタック オーバーフローの投稿 (すべてのポートでの C# .Net エラーによる GMail SMTP ) の詳細と例を示しました。それ以外の場合は、 http://support.microsoft.com/kb/310212の KB 記事に直接アクセスできます。

お役に立てれば!

于 2010-10-03T12:39:28.113 に答える