J'essaie de configurer le serveur SMTP sur IIS pour l'envoi de courrier. Le serveur SMTP est destiné à être utilisé par le code ASP.NET en C #.
J'utilisais précédemment gmail smtp dans lequel j'ai fourni smtp.gmail.com en tant qu'hôte avec port sécurisé et mon gmail uid/pwd. Cela a bien fonctionné. Voici le code utilisé pour le faire.
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;
smtpClient.Send(mailMessage);
Maintenant, je prévois d'utiliser le serveur SMTP localhost sur IIS, quelles valeurs dois-je donner pour les paramètres UseDefaultCredentials et Credentials. J'attribuerai la valeur false à EnableSsl car il s’applique au port 25.
En outre, quelle pourrait être la configuration de serveur virtuel SMTP la plus simple?.
Je pense que dans localhost, vous pouvez utiliser:
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Send(mailMessage);
Lorsque vous utilisez le service SMTP IIS local, définissez DeliveryMethod sur PickupDirectoryFromIis. Par exemple:
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
Cela contourne totalement la couche réseau et écrit les messages directement sur le disque. C'est beaucoup plus rapide que de passer par le protocole SMTP bavard.
Lorsque vous utilisez le code ci-dessus, cela signifie que vous pouvez vous débarrasser de cette partie de votre code:
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;
Cela dépend de la façon dont vous configurez le serveur SMTP. Vous n'aurez peut-être pas besoin d'utiliser des informations d'identification et configurez simplement le serveur pour n'accepter que les connexions locales.
Avez-vous essayé d'activer le relais?
Rechercher le gestionnaire IIS6 (j'ai constaté que la recherche de IIS pouvait générer 2 résultats) accédez aux propriétés du serveur SMTP, puis sur "Accès", puis sur le bouton de relais.
Ensuite, vous pouvez sélectionner tout ou ne permettre que certaines adresses IP comme 127.0.0.1.
Tx Natim, ce que vous dites a fonctionné pour moi. Demandez à notre application intranet utilisant l'authentification intégrée avec notre serveur Exchange 2007:
Dim msg As New MailMessage()
Dim smtp As SmtpClient
msg.From = New MailAddress(strFrom)
msg.To.Add(strTo)
msg.Subject = strSubject
msg.Body = strBody
smtp = New SmtpClient("ServerName")
smtp.UseDefaultCredentials = True
smtp.Send(msg)
Si vous voulez tester les emails dans localhost, il suffit de télécharger l’outil papercut https://papercut.codeplex.com/
et changez hostname en localhost comme ci-dessous. Papercut capture tous les courriels qui envoient en utilisant localhost.
smtpClient.UseDefaultCredentials = false;
smtpClient.Host = "localhost";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential(uname,pwd);
smtpClient.EnableSsl = true;