なぜMailMessage送信先のアドレスからWindows Formsアプリケーションですが、いないからASP.NET 申請した場合は、SMTPサーバ?
-
23-09-2019 - |
質問
私は体験不思議な(るい)場合にはエラーの電子メールを配信することを通してSMTPサーバからASP.NET サポートも組み込まれています。かの有名なエラー"がリレー xxx@yyy.zzz".何の不思議なたは私がカット&ペーストと同じコードで送信するe-mailに入ります。NET Windows Forms応用、送信、e-mail等での利用にとって、すべての作品です。この考えさせられるかという問題がありASP.NET 応用行としてのネットワークサービスが自動的にすべてのWindows Formsは、ドメインのユーザーアカウントがここでもう一つASP.NET 申込の送信メールを通してSMTPサーバー走行下でのネットワークサーバで同じIIS、本アプリはこの問題です。
私はまた電子メールの送信はSMTPサーバーを手動によるtelnet、SMTPサーバのポートが25にSMTP-プロトコルを手動ですべての作品。のSMTPサーバに設定されていないというのは、認証をするものとする。
別の不思議なことはASP.NET 申込メールを送ることができからアドレスのドメインのメールが届くので、メールアドレスのドメインがない任意のアドレス以外の領域です。そのWindows Forms用することを同じコードにメールを送ることができ任意のアドレスを任意のアドレスの両方の領域です。
なのでまとめると:
- のASP.NET 申請を送信でき メールアドレスの ドメインへのアドレスのドメイン なアドレス以外の ます。
- Windows Formsアプリケーション 同じコードを同じコンピュータ メールを送ることができ任意のアドレスを 他のアドレスです。
- 他のASP.NET 申請の 同IIS動で同じ アカウント(ネットワークサービス)を送信でき eメールでのSMTPサーバー 任意のアドレス載のアドレスです。
- な認証設定 のSMTP-Server.
- 両方のASP.NET 申請の Windows Formsアプリ のシステム。います。メール.SmtpClientクラス を送る システム。います。メール.MailMessage.
このコードで送信するe-メールマッサージは:
private void button1_Click(object sender, EventArgs e)
{
MailMessage mesasge = new MailMessage(txtFrom.Text, txtTo.Text, "Test mail", txtBody.Text);
SmtpClient client = new SmtpClient();
if (!(string.IsNullOrEmpty(txtUserName.Text))) //Is false since txtUserName.Text is empty
client.Credentials = new System.Net.NetworkCredential(txtUserName.Text, txtPassword.Text);
client.EnableSsl = false;
client.Host = txtServer.Text;
client.Port = 25;
try
{
client.Send(mesasge);
}
catch (Exception ex)
{
txtResponse.Text = ex.Message;
}
}
どの内容を理解することができ、この問題構成により符号化問題に関するいもう何が問題なのかがうかがでました。そ!
解決
この違いの認証は、偶然な事故を2つの異なるSMTPサーバー
をお勧めします。enableにログインの両方のアプリビュー off.............を視聴した場合にログに対応することができるでしょうの違いう微量で自のコードです。
にenalbeログインシステム。います。メールを追加する必要がありますか応募おります。configファイルです。
<configuration>
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.Net" >
<listeners>
<add name="MyTraceFile"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="MyTraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add
name="MyTraceFile"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="System.Net.trace.log" />
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose" />
<add name="System.Net.Sockets" value="Verbose" />
</switches>
</configuration>
こちらはリンクの詳細情報:
他のヒント
い装=trueです。config?
この:
new System.Net.NetworkCredential(txtUserName.Text, txtPassword.Text);
どんなことを求めます。configに設定する行していた
みを追加することによります。config(だいによってであり)
<system.web>
<identity impersonate="true" />