2013-10-07 11 views
20

Ich versuche, ein E-Mail-Problem mit einer geerbten Website zu beheben und haben keinen Zugriff auf den Code (d. H. Nur die kompilierten Dateien). Diese Website muss auf einem neuen Webserver mit einem anderen SMTP-Server gehostet werden.Wie konfiguriert man SMTP-Einstellungen in web.config

Nach der Dekompilierung Bits des Codes kann ich sehen, dass E-Mails mit Methode wie unten in Code-Snippet und SMTP als SMTPPMail.SmtpServer = "localhost" gesendet wird, aber der SMTP-Server meines neuen Webservers ist "relay.tagadab.com" wie können wir dies in web.config möglicherweise so konfigurieren, dass localhost als „relay.tagadab.com“

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 

ich habe diesen Abschnitt in meinem web.config genommen wird, sondern dass eine Differenz nicht

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

Nur [konfigurieren IIS] (http://stackoverflow.com/questions/239262/can-i-configure-smtp- In-iis-so-es-Relais-zu-einem-Remote-SMTP-Server), so dass SMTP Localhost Mail an relay.tagadab.com leitet. – nunzabar

+0

@nunzabar können Sie mir freundlicherweise ein Beispiel geben, wie können wir es weiterleiten – rumi

Antwort

4

Legen Sie IIS fest, um Ihre E-Mails an den Remote-Server weiterzuleiten. Die Details variieren stark abhängig von der Version von IIS. Für IIS 7.5:

  1. Öffnen Sie IIS-Manager
  2. Verbindung zu Ihrem Server benötigt, wenn
  3. den Serverknoten auswählen; Im Bereich ASP.NET sollte rechts eine SMTP-Option angezeigt werden.
  4. Doppelklicken Sie auf das SMTP-Symbol.
  5. Wählen Sie den "Senden an SMTP-Server E-Mail" aus und geben Sie Ihren Servernamen, Berechtigungen usw.
+0

Ich habe bereits versucht, einen Abschnitt in web.config hinzuzufügen (siehe meine Frage), aber das macht keinen Unterschied. Ich sehe genau die gleiche Sache in der IIS, wenn ich SMTP-E-Mail öffnen – rumi

+0

Blick ein wenig näher, müssen Sie bestimmen, wie 'SmtpMail' instanziiert wird. Auf Web.config wird nur verwiesen, wenn Sie den [Standardkonstruktor] (http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.smtpclient.aspx) verwenden. – nunzabar

40

Web.Config-Datei:

<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

Was ist mit der C# -Seite? Codebeispiel pls? –

+3

Codebeispiel: SmtpClient smtpClient = new SmtpClient(); smtpClient.Send (msgMail); –

+0

@Sanjay Kumar funktioniert es noch? Beim Versuch, Google Mail mit SMTP zu verwenden, erhalte ich den folgenden Fehler: "Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich.". – dpant

4

ich habe nicht genug rep um ClintEastwood zu beantworten, und die akzeptierte Antwort ist für die Datei Web.config korrekt. Hinzufügen für Code-Unterschied.

Wenn Ihre Maileinstellungen in der Datei Web.config festgelegt sind, müssen Sie nur SmtpClient und .Send neu starten. Es findet die Verbindung selbst, ohne dass sie referenziert werden muss. Sie würden Ihr C# aus dieser Änderung:

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); 

Um dies:

SmtpClient smtpClient = new SmtpClient(); 
smtpClient.Send(msgMail); 
Verwandte Themen