継承されたウェブサイトでのメールの問題を修正しようとしていますが、コード(つまり、コンパイルされたファイル)にアクセスできません。このサイトは、別のsmtpサーバーを持つ新しいWebサーバーでホストする必要があります。
コードの一部を逆コンパイルすると、以下のようなメソッドを使用してメールが送信され、smtpがsmtpMail.SmtpServer = "localhost"に設定されますが、新しいWebサーバーのsmtpサーバーは "relay.tagadab.com"ですlocalhostが「relay.tagadab.com」として取得されるように、web.configでこれ
Imports Microsoft.VisualBasic, System.Web.Mail
Shared Sub SendMail(ByVal ToAdd, ByVal FromAdd, ByVal Message, ByVal Subject)
Dim msgMail As New MailMessage()
msgMail.To = ToAdd
msgMail.From = FromAdd
msgMail.Subject = Subject
msgMail.Headers.Add("X-Mailer", "ASP.NET")
msgMail.BodyFormat = MailFormat.Text
msgMail.Body = Message
'SmtpMail.SmtpServer = "mail.the-radiator.com"
SmtpMail.SmtpServer = "localhost"
SmtpMail.Send(msgMail)
End Sub
このセクションをweb.configに追加しましたが、違いはありません
<system.net>
<mailSettings>
<smtp>
<network Host="relay.tagadab.com" port="25" />
</smtp>
</mailSettings>
</system.net>
Web.Configファイル:
<configuration>
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network Host="smtp.gmail.com"
port="587"
userName="[email protected]"
password="yourpassword"
enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
ClintEastwoodに回答するのに十分な担当者がいないため、受け入れられた回答はWeb.configファイルに対して正しいものです。コードの違いのためにこれを追加します。
MailSettingsがWeb.configで設定されている場合、SmtpClientと.Sendを更新する以外に何もする必要はありません。参照する必要なく接続自体を見つけます。これからC#を変更します。
SmtpClient smtpClient = new SmtpClient("smtp.sender.you", Convert.ToInt32(587));
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("username", "password");
smtpClient.Credentials = credentials;
smtpClient.Send(msgMail);
これに:
SmtpClient smtpClient = new SmtpClient();
smtpClient.Send(msgMail);
IISを設定して、メールをリモートサーバーに転送します。詳細は、IISのバージョンによって大きく異なります。IIS 7.5: