[C#] mail ne sortant pas du réseau

mail ne sortant pas du réseau [C#] - C#/.NET managed - Programmation

Marsh Posté le 26-10-2007 à 12:33:15    

Bonjour,
 
J'ai un petit soucis.
 
Je vous explique la situation, j'ai repris une petite source sur internet pour envoyer des mails que j'ai modifié un peux à ma sauce.
 
lorsque j'envoi un mail à une personne de ma société (du genre MrDupont@masociete.com) ça marche, par contre, si je l'envoi à MrDupont@hotmail.com ça ne part pas :(
 
Voici la fonction :
 

Code :
  1. public class MailManager
  2.     {
  3.         private string _SmtpServer = "192.168.10.5";
  4.         private string _From = "spish@masociete.com";
  5.         public Boolean reportquot(string nomU, List<listedestinataire> listdest, List<listePJ> listPJ, string subject, string body)
  6.         {
  7.             int nbdest = listdest.Count;
  8.             int nbPJ = listPJ.Count;
  9.             string dest = "";
  10.             try
  11.             {
  12.                 // Creation d'un nouveau message
  13.                 MailMessage message = new MailMessage();
  14.                 message.From = new MailAddress(_From);
  15.                 message.Subject = subject;
  16.                 message.Body = body;
  17.                 //Ajout des destinataires
  18.                 if (nbdest != 1)
  19.                 {
  20.                     for (int i = 0; i < nbdest; i++)
  21.                     {
  22.                         message.To.Add(new MailAddress(listdest[i].nom));
  23.                     }
  24.                 }
  25.                 else
  26.                 {
  27.                     message.To.Add(new MailAddress(listdest[0].nom));
  28.                 }
  29.                 //ajout des Piece jointes
  30.                 for (int i = 0; i < nbPJ; i++)
  31.                 {
  32.                     message.Attachments.Add(new Attachment(listPJ[i].PJ));
  33.                 }
  34.                 //Envoie du message
  35.                 SmtpClient client = new SmtpClient(_SmtpServer);
  36.                 client.Send(message);
  37.             }
  38.             catch (Exception e)
  39.             {
  40.                 using (StreamWriter sw = File.AppendText(repinst+"\\Logs\\Error" + nomU + ".log" ))
  41.                 {
  42.                     Log("ERROR :" + e + " : Impossible d'envoyer le rapport quotidien à :" + dest, sw);
  43.                     sw.Close();
  44.                     return false;
  45.                 }
  46.             }
  47.             return true;
  48.         }
  49.         public static void Log(String logMessage, TextWriter w)
  50.         {
  51.             w.Write("\r\nLog Entry : " );
  52.             w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
  53.                 DateTime.Now.ToLongDateString());
  54.             w.WriteLine("  :" );
  55.             w.WriteLine("  :{0}", logMessage);
  56.             w.WriteLine("-------------------------------" );
  57.             // Update the underlying file.
  58.             w.Flush();
  59.         }
  60.     }
  61.     public class listedestinataire
  62.     {
  63.         private string destinataire;
  64.         public listedestinataire(string nom)
  65.         {
  66.             destinataire = nom;
  67.         }
  68.         public string nom
  69.         {
  70.             get { return destinataire; }
  71.             set { destinataire = value; }
  72.         }
  73.     }
  74.     public class listePJ
  75.     {
  76.         private string piecejointe;
  77.         public listePJ(string PJ)
  78.         {
  79.             piecejointe = PJ;
  80.         }
  81.         public string PJ
  82.         {
  83.             get { return piecejointe; }
  84.             set { piecejointe = value; }
  85.         }
  86.     }


 
Si quelqu'un a une idée je suis preneur :)
 
Merci d'avance pour votre aide

Reply

Marsh Posté le 26-10-2007 à 12:33:15   

Reply

Marsh Posté le 26-10-2007 à 12:40:08    

utilise un smtp public, genre celui du FAI de ta boîte.
il nécessitera certainement une authentification, mais c'est pas gênant, tu peux utiliser l'authentification avec les objets de C#.
 
à noter qu'il faut que ton adresse en "FROM" soit une adresse valide, et qu'elle appartienne au domaine correspondant à l'indentification que tu donnes.

Reply

Marsh Posté le 29-10-2007 à 07:29:49    

Bonjour MagicBuzz,
 
Mon fournisseur d'accés ne me fournit pas de serveur SMTP, mais l'adresse que j'utilise pour envoyer ( du moins pendant cette phase de test) est la mienne au sein de la société, elle est donc valable.
 
Si depuis Outolok j'envoi un mail à MrDupont@hotmail.com il est envoyé correctement.
 
Je ne comprends donc pas pourquoi mon code ne marche pas. Vu qu'il est capable d'envoyer des mails sur les boites internes de ma societe.

Reply

Marsh Posté le 29-10-2007 à 10:50:40    

ce serveur, c'est quoi ?
 
private string _SmtpServer = "192.168.10.5";
 
C'est ça ton serveur SMTP.
vu son IP, c'est un SMTP non public.
tu peux tenter d'activer dessus le forward vers un SMTP public, mais outre la complexité relative de la manip, ça ne marchera que si tu as la main sur le serveur relai afin d'autoriser ton SMTP local.
 
dans outlook, il se connecte à quoi comme serveur ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed