2009-05-30 2 views
1

J'ai essayé d'envoyer un e-mail en utilisant cette classe ci-dessous, mais pas de succès, pas de message d'erreur, la page vient d'être exécutée très rapidement, un problème avec cette classe?ASP.NET n'enverra pas d'email et aucun message d'erreur, bizarre!

public bool mailSender(string strSubject, string strFrom, string strFromName, string strTo, string strBody) 
{ 
     SmtpClient smtpClient = new SmtpClient(); 
     MailMessage message = new MailMessage(); 

     try 
     { 
      MailAddress fromAddress = new MailAddress(strFrom, strFromName); 

      smtpClient.Host = ConfigurationManager.AppSettings["smtpServer"]; 
      smtpClient.Port = 25; 
      smtpClient.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["smtpUsername"], ConfigurationManager.AppSettings["smtpPassword"]); 

      message.From = fromAddress; 

      message.To.Add(strTo); 
      message.Subject = strSubject; 

      message.IsBodyHtml = false; 

      message.Body = strBody; 

      smtpClient.Send(message); 

      return true; 
     } 
     catch 
     { 
      return false; 
     } 
} 
+0

Avez-vous vérifié les files d'attente du serveur de courrier (échoué, mis en file d'attente etc.) pour voir si votre message est dans l'une de ces? Si c'est le cas, vous devrez vérifier la configuration de votre serveur SMTP (donc aucune exception n'est levée dans votre code). –

+0

Après de nombreux maux de tête causés par le traitement de 'System.Net.Mail', nous sommes passés de Quiksoft à FreeSMTP.Net et avons été beaucoup plus heureux. Il a une syntaxe similaire et de meilleurs messages d'erreur. Et non, je ne travaille pas pour l'entreprise. http://www.quiksoft.com/freesmtp/ – HVS

Répondre

4

Votre bloc try/catch rejette délibérément tout message d'erreur. Enlevez cela et voyez ce que vous obtenez.

+0

Oh mon Dieu! Je me sens honteux sur moi-même ... N'a pas touché au code depuis si longtemps ... lol – silent

0

soutien porcin de ce que bruce dit, faites ceci:

try 
    'your code here' 
catch ex As Exception 
    Response.Write(ex.Message) 
end try 
0

Une chose que je l'ai remarqué, en particulier lors de l'exécution dans le débogueur, est que le SmtpClient ne semble pas réellement envoyer le courrier jusqu'à ce qu'il obtienne disposé. Au moins, je vois souvent les messages sortir quand j'arrête le débogueur plutôt qu'au moment où le courrier est censé être envoyé.