J'essaie de résoudre un problème de courrier électronique avec un site Web hérité et je n'ai pas accès au code (c'est-à-dire uniquement aux fichiers compilés). Ce site doit être hébergé sur un nouveau serveur Web ayant un serveur smtp différent.
Lors de la décompilation des bits du code, je peux voir que les e-mails sont envoyés en utilisant la méthode comme ci-dessous dans l'extrait de code et smtp est défini comme smtpMail.SmtpServer = "localhost" mais mon nouveau serveur smtp de serveur Web est "relay.tagadab.com" comment pouvons-nous éventuellement configurer ceci dans web.config pour que localhost soit considéré comme "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
J'ai ajouté cette section dans mon web.config mais cela ne fait aucune différence
<system.net>
<mailSettings>
<smtp>
<network Host="relay.tagadab.com" port="25" />
</smtp>
</mailSettings>
</system.net>
Fichier 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>
Je n'ai pas assez de représentant pour répondre à ClintEastwood et la réponse acceptée est correcte pour le fichier Web.config. Ajout de cela pour la différence de code.
Lorsque vos paramètres mailSettings sont définis sur Web.config, vous n'avez rien d'autre à faire que de renouveler votre SmtpClient et .Send. Il trouve la connexion elle-même sans avoir besoin d'être référencé. Vous changeriez votre C # de ceci:
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);
Pour ça:
SmtpClient smtpClient = new SmtpClient();
smtpClient.Send(msgMail);
Définissez IIS pour transférer votre courrier vers le serveur distant. Les détails varient considérablement en fonction de la version d'IIS. Pour IIS 7.5: