2013-10-07 56 views
20

私は継承されたウェブサイトで電子メールの問題を修正しようとしており、コードにアクセスできません(つまり、コンパイル済みのファイルのみ)。このサイトは、別のsmtpサーバーを持つ新しいWebサーバーでホストする必要があります。web.configでsmtp設定を構成する方法

コードの逆コンパイル時に、コードスニペットで以下のようなメソッドを使用してメールが送信され、smtpがsmtpMail.SmtpServer = "localhost"として設定されていますが、新しいウェブサーバーのsmtpサーバーは "relay.tagadab.com"それはlocalhostが

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ファイルで、このセクションを追加した「relay.tagadab.com」としているが、それは違いはありませんので、我々は、おそらくweb.configファイルでこれを設定することができ

<system.net> 
    <mailSettings> 
     <smtp> 
      <network host="relay.tagadab.com" port="25" /> 
     </smtp> 
    </mailSettings> 
</system.net> 
+1

ジャストhttp://stackoverflow.com/questions/239262/can-i-configure-smtp-([IISを設定します] in-iis-so-it-relay-to-a-remote-smtp-server)を使用して、SMTPローカルホストがrelay.tagadab.comにメールを転送するようにします。 – nunzabar

+0

@nunzabar私はそれを転送する方法を教えてくれますか? – rumi

答えて

4

メールをリモートサーバーに転送するようにIISを設定します。詳細は、IISのバージョンによって大きく異なります。 IIS 7.5の場合:

  1. オープンIISマネージャ
  2. 接続サーバーへ
  3. 必要に応じて、サーバーノードを選択します。 ASP.NETセクションの右側にSMTPオプションが表示されます。
  4. SMTPアイコンをダブルクリックします。
  5. 「SMTPサーバーに電子メールを配信する」オプションを選択してなど、サーバー名、資格情報を入力します
+0

私は既にweb.configにセクションを追加しようとしましたが(私の質問を参照してください)、違いはありません。私はSMTP電子メールを開いたときにIISでまったく同じことを見る – rumi

+0

もう少し見ると、 'SmtpMail'がどのようにインスタンス化されるかを判断する必要があります。 Web.configは、[既定のコンストラクター](http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.smtpclient.aspx)を使用する場合にのみ参照されます。 – nunzabar

40

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> 
+1

C#側はどうですか?コードサンプルpls? –

+3

コードサンプル:SmtpClient smtpClient = new SmtpClient(); smtpClient.Send(msgMail); –

+0

@Sanjay kumarはまだ動作しますか? "SMTPサーバーが安全な接続を必要としているか、クライアントが認証されていません。サーバーの応答は:5.5.1認証が必要です"というメッセージが表示されます。 – dpant

4

私は十分に担当者を持っていません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); 
関連する問題