1

Windows 2008 サーバーで実行される ASP.NET 4.0 の下で C# で記述されたこの Web アプリケーションがあります。username@mydomain.com からユーザーにメールを送信したいのですが、送信できません。私は次の方法(smtp.gmail.com を使用して機能しました)と System.Net.Mail を使用しています。

        string from = "user@mydomain.com";
        string password = "12345";

        MailMessage mail = new MailMessage();
        mail.To.Add(to);
        mail.From = new MailAddress(from);
        mail.Subject = title;
        mail.Body = message;
        mail.IsBodyHtml = true;

        SmtpClient smtp = new SmtpClient();
        smtp.Host = "stmp ip here";
        smtp.Port = 25;
        smtp.Credentials = new System.Net.NetworkCredential(from, password);
        smtp.EnableSsl = false;

        smtp.Send(mail);

基本認証とアウトバウンド セキュリティ -> 基本認証 (user@mydomain.com と 12345 をパスワードとして使用) を使用して SMTP サーバーをインストールおよび構成しました。私の Web サイトの IIS7 で、[SMTP 電子メール] をクリックし、SMTP サーバーの IP と上記の資格情報を入力しました。

このすべての構成を行う前に、メールがキューフォルダーにスタックしている、サーバーがssl接続をサポートしていないなどの問題に遭遇しました。現在、電子メールを送信するときに受け取る唯一のエラーは、アプリケーションからログに記録されます。SMTP サーバーには安全な接続が必要であるか、クライアントが認証されていません。サーバーの応答は次のとおりです。5.7.3 クライアントが認証されておらず、電子メールが宛先に到着していません。キュー フォルダが空で、SMTP サーバー ログからのエラーはありません。

私はそれについてグーグルでたくさんの研究をしましたが、私はそれを修正することはできません. Telnet は正常に機能しており、ポート 25 はブロックされておらず、Windows ファイアウォールを無効にしても効果はありません。私は本当に立ち往生しています。何か案は?ありがとう!

4

1 に答える 1

1

サーバーで「EnableSsl」を「true」に設定する必要があるようです。そのため、サーバーでこれを無効にするか、クライアントで単に「EnableSSl = true」を設定することができます。おそらく、ポートを 587 または (場合によっては) 465 に変更する必要があります。

于 2013-03-03T17:43:50.233 に答える