1

Vista/Win7で毎回完全に動作するように見える次のコードを使用しています。

private void SendEmail(string subject, string body, string attach)
{
    using (MailMessage message = new MailMessage("username@gmail.com", "username@gmail.com", subject, body))
    {
        message.IsBodyHtml = true;

        if (!string.IsNullOrEmpty(attach))
        {
            Attachment attached = new Attachment(attach);
            message.Attachments.Add(attached);
        }

        SmtpClient client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("username@gmail.com", "password"),
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network
        };

        client.Send(message);
    }
}

ただし、Windows XP では次のようになります。

No connection could be made because the target machine actively refuses it

確認したところ、Windowsファイアウォールは完全に無効になっています...

4

4 に答える 4

2

Windows マシンから次のことを試してください。

  1. windows key + r
  2. タイプcmd
  3. タイプtelnet smtp.gmail.com 587

接続が拒否された、または同様のメッセージが表示された場合は、コードとは関係なく、ファイアウォールまたはネットワークの問題です。

于 2010-01-27T13:21:41.110 に答える
1

これが原因かどうかはわかりませんが、ある時点でその問題が発生し、ウイルス対策ユーティリティが原因でした.

于 2010-01-27T13:21:51.770 に答える
0

3 つのシステムすべてで同じバージョンの System.Net.Mail を使用していますか?

また、接続をブロックしている Windows ファイアウォール (またはその他のファイアウォール) に関連している可能性もあります。

于 2010-01-27T13:23:56.377 に答える
0

これがOSと関係があるとは思えません。そのタイプの例外は通常、内部のものからバブルアップします。例外をトラップし、内部の例外を調べて、実際の問題を確認してください。

ただし、この種の問題は通常、ファイアウォールがブロックされているか、リモート SMTP サーバーが着信要求をブロックしているか、マシンがポート 25 で発信要求をブロックしています。

于 2010-01-27T13:24:41.640 に答える