2016-06-27 1 views
0

Je suis nouveau à Mailkit/Mimekit et en cours de migration depuis Easymail. Le code ci-dessous donne un message d'erreur indiquantProblème lors de l'envoi de messages à l'aide de Mailkit (C#)

Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. 

Ceci est un cas où où je l'ai utilisé Essayez les déclarations de capture, si je retire le Try Catch il me donne la sortie comme

2.0.0 Ok: queued as 3rdP7Y5ZrzzJp60 

Quelle est la sortie attendue car mon serveur SMTP est très bien. Pourquoi cela se produirait-il? Je suis juste essayer d'attraper des erreurs où le serveur ne répond pas

string ReturnEmail = "[email protected]"; 
string ReturnName = "Return xxxxxxx"; 
string FromEmail = "[email protected]"; 
string FromName = "xxxxxxx"; 
string SenderEmail = "[email protected]"; 
string SenderName = "xxxxxxx";  
string TextBody = @"Text Body"; 
string HtmlBody = string.Format(@"HTML Body"); 
string Subject = "Retrouvez-nous à la e à l’occasion de la Coupe du Monde de Combiné Nordique"; 
string ToName = "XXX"; 
string ToEmail = "[email protected]"; 
string MailServer = "XX.XXX.XX.XXX"; 
int Result = 0; 
var message = new MimeMessage(); 

MailboxAddress RecepientAddress = new MailboxAddress(ToName, ToEmail); 
message.From.Add(new MailboxAddress(FromName, FromEmail)); 

var builder = new BodyBuilder(); 

builder.TextBody = TextBody; 
builder.HtmlBody = HtmlBody; 

List<MailboxAddress> To = new List<MailboxAddress>(); 
To.Add(RecepientAddress); 

message.Subject = Subject; 
message.Body = builder.ToMessageBody(); 
message.Sender = new MailboxAddress(SenderName, SenderEmail); // Sender Address 
message.To.Add (RecepientAddress);  
var client = new SmtpClient(new ProtocolLogger("smtp.txt")); // logging SMTP connections 
client.Timeout = 20; 

// client.Connect(MailServer, 25); 
try 
{ 
    client.Connect(MailServer, 25); 
} 
catch (SmtpCommandException ex) 
{ 
    Console.WriteLine("Error trying to connect: {0}", ex.Message); 
    Console.WriteLine("\tStatusCode: {0}", ex.StatusCode);    
} 
catch (SmtpProtocolException ex) 
{ 
    Console.WriteLine("Protocol error while trying to connect: {0}", ex.Message);    
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message);    
} 
+0

Pourquoi avez-vous mis le délai d'attente du client à 20 millisecondes? – jstedfast

+0

J'essayais juste de définir un délai d'attente par défaut, peut-être que je devrais l'augmenter à 2000 ?. – Krylor

+0

Il existe déjà un jeu par défaut raisonnable, vous n'avez pas besoin de le définir. – jstedfast

Répondre

1

Supprimer cette ligne:

client.Timeout = 20;