0
私はGmailを介してメールを送信するwinformsアプリを持っています。 素晴らしいですが、1つのケースでは送信が失敗し、上記のエラーが発生します。 RDP接続経由でアクセスしているコンピュータでアプリケーションが実行されている場合に発生します。 私は成功せず、これまでに試してみました:gmailでメールを送信する#10051ネットワークにアクセスできない
- 無効にWindowsファイアウォール
- 無効にマイクロソフトセキュリティEssensials。
- 他のアンチウイルスプログラムがインストールされていないことを確認してください。
- アウトバウンドルルに587ポートを追加しました。
私のコードは次のよう:(このコードはすべてのケースで働いていることに注意してくださいが、この)
string fromAddress = txtFrom.Text.Trim();
string toAddress = txtTo.Text.Trim();
string fromPassword = ePassword;
string subject = txtSubject.Text;
string body = txtMessage.Text;
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
//Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
Credentials = new NetworkCredential(fromAddress, fromPassword)
};
//using (var message = new MailMessage(fromAddress, toAddress)
using (var message = new MailMessage()
{
From = new MailAddress(fromAddress, eDisplayName),
Subject = subject,
Body = body
})
{
// Check for recipiens
if (txtTo.Text.Trim() != "")
{
foreach (string email in txtTo.Text.Split(';'))
{
message.To.Add(email.Trim());
}
}
// check for copies
if (txtCopy.Text.Trim() != "")
{
foreach (string email in txtCopy.Text.Split(';'))
{
message.CC.Add(email.Trim());
}
}
// check for blind copy
if (txtBlindCopy.Text.Trim() != "")
{
foreach (string email in txtBlindCopy.Text.Split(';'))
{
message.Bcc.Add(email.Trim());
}
}
//check for attachments
for (int i = 0; i < clbAttachments.Items.Count; i++)
{
if (clbAttachments.GetItemChecked(i) == true)
{
Attachment attachment = new Attachment(clbAttachments.Items[i].ToString());
message.Attachments.Add(attachment);
}
}
smtp.Send(message);
return true;
RDPにはどのようなタイプのネットワークがありますか?リモートコンピュータがOutlookが使用されているネットワークの内部にある場合は、動作させることはできません。おそらく、電子メールをブロックしているプロキシサーバーがあります。プロキシサーバーはポート587を含むすべての電子メールポート番号を自動的に取得します。したがって、電子メールを送信できるようにプロキシサーバーを設定する必要があります。プロキシサーバーは電子メールを自動的にOutlook Serverに転送します。 – jdweng
プロキシサーバーの設定を確認するにはどうすればよいですか? リモートコンピュータがローカルネットワーク内にありません。 サードパーティからリモートサーバーを購入しました。 – subirshan
コントロールパネルの最初のチェック:ユーザーアカウント:電子メール。ファイアウォールはおそらくポートフォリオの電子メールポートに設定されています。だからこの記事を参照してください:https://www.pcsteps.com/1154-port-forwarding-router-windows-firewall/ – jdweng