2017-06-08 4 views
0

Je suis en train de développer un client de messagerie. qui envoie un courrier électronique aux destinataires donnéscomment configurer plusieurs serveurs de messagerie SMTP primaires et de sauvegarde en C#

using System.Net; 
using System.Net.Mail;  


MailMessage msg; 
SmtpClient client; 
SMTPURL=abc.xyz 
SMTPPort=87 
client = new SmtpClient(SMTPURL, SMTPPort); 
client.Credentials = new NetworkCredential(senderID, senderPWD); 
msg = new MailMessage(); 
msg.To.Add("[email protected]"); 
msg.Body="hello hi bye"; 
client.Send(msg); 

ce code fonctionne bien, mais j'ai un serveur de messagerie de sauvegarde avec l'URL 123.xyz

si mon abc.xyz est en panne ou j'ai mal url je vais obtenir un SmtpException

maintenant, ma question est de savoir comment rediriger mon message à 123.xyz courrier serveur de sauvegarde

mon hypothèse est d'attraper le SmtpException et changer le SMTPURL à 123.xyz et renverrons, mais est-ce un bon moyen ou un autre un existe-t-il des routines vers le serveur de messagerie secondaire?

Merci à l'avance

+0

https://msdn.microsoft.com/en-us/library/system.net .mail.smtpexception.statuscode% 28v = vs.110% 29.aspx – Hackerman

Répondre

1

vous devriez être en mesure d'utiliser votre essai de base/bloc catch:

public void function sendemail() 
{ 
try{ 
SendEmailByServer(primaryserverurl); 
} 
catch(SMTPException se) 
{ 
sendemailbyserver(backupurl); 
} 
catch(Exception ex) 
{ 
//something else broke 
} 

} 

public void function SendEmailByServer(string server) 
{ 
MailMessage msg; 
SmtpClient client; 
SMTPURL=server; 
SMTPPort=87; 
client = new SmtpClient(SMTPURL, SMTPPort); 
client.Credentials = new NetworkCredential(senderID, senderPWD); 
msg = new MailMessage(); 
msg.To.Add("[email protected]"); 
msg.Body="hello hi bye"; 
client.Send(msg); 
} 
+0

merci, cela aide. mais je me demande s'il y a quelque chose comme des propriétés intégrées C# pour configurer le serveur de messagerie principal et de sauvegarde –

+0

Je ne connais rien à construit. La plupart des endroits où je travaillais avaient leur propre serveur d'échange, donc si c'était le cas, vous vous concentriez généralement sur le fait de le ramener au lieu de le remplacer par une sauvegarde. Vous pouvez toujours créer votre smtpclient personnalisé qui hérite du fichier .net, puis ajouter le serveur de sauvegarde en tant que propriété. Remplacer la méthode d'envoi pour qu'elle essaie base.send, attraper et envoyer avec la sauvegarde peut-être. –