begin process at 2008 08 22 04:35:44
1 229 775 membres
46 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SMTP


Information sur la source

Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous : smtp, mail Niveau : Initié Date de création : 02/06/2002 Date de mise à jour : 02/06/2002 16:52:51 Vu : 15 737

Note :
7,75 / 10 - par 4 personnes
7,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note


Description

Envoyer un e-mail avec C#

Source

  • using System;
  • using System.Web.Mail;
  • namespace EnvoiSMTP
  • {
  • public class Mail
  • {
  • private string To; // Emailaddres for user to send
  • private string From;// Emailaddres for user from
  • private string Sujet;
  • private string Message;
  • private string NomServeur;
  • public Mail()
  • {
  • // Valeur null
  • From = "";
  • To = "";
  • }
  • public string SmtpServeur
  • {
  • set
  • {
  • NomServeur = value;
  • SmtpMail.SmtpServeur = value;
  • }
  • get
  • {
  • return NomServeur;
  • }
  • }
  • public string MailFrom
  • {
  • set
  • {
  • From = value;
  • }
  • get
  • {
  • return From;
  • }
  • }
  • public string MailTo
  • {
  • set
  • {
  • To = value;
  • }
  • get
  • {
  • return To;
  • }
  • }
  • public string MailMessage
  • {
  • set
  • {
  • Message = value;
  • }
  • get
  • {
  • return Message;
  • }
  • }
  • public string MailSujet
  • {
  • set
  • {
  • Sujet = value;
  • }
  • get
  • {
  • return Sujet;
  • }
  • }
  • public bool Envoyer()
  • {
  • try
  • {
  • Console.WriteLine();
  • Console.WriteLine("Connection au serveur : {0}" , NomServeur);
  • // Envoi du mail
  • SmtpMail.Send (From,To,Sujet,
  • Message);
  • return true;
  • }
  • catch (Exception e)
  • {
  • Console.WriteLine("Erreur lors de l'envoi : {0}" , e.Message );
  • return false;
  • }
  • }
  • [STAThread]
  • static void Main(string[] args)
  • {
  • // Entete Main
  • Mail Smtp = new Mail();
  • Console.Write("Serveur SMTP : ");
  • Smtp.SmtpServeur = Console.ReadLine();
  • Console.Write("Votre e-mail : ");
  • Smtp.MailFrom = Console.ReadLine();
  • Console.Write("Mail du destinateur : ");
  • Smtp.MailTo = Console.ReadLine();
  • Console.Write("Subject Mail : ");
  • Smtp.MailSubjet = Console.ReadLine();
  • Console.Write("Message : ");
  • Smtp.MailMessage = Console.ReadLine();
  • if (Smtp.Envoyer())
  • {
  • Console.WriteLine("Fin de session : Ok");
  • }
  • else
  • {
  • Console.WriteLine("Fin de session : Erreur");
  • }
  • Console.WriteLine("Pressez une touche...");
  • Console.Read();
  • }
  • }
  • }
using System;
using System.Web.Mail;

namespace EnvoiSMTP
{
    public class Mail
    {
    	private string To; // Emailaddres for user to send
    	private string From;// Emailaddres for user from 
    	private string Sujet;
    	private string Message;
    	private string NomServeur;
    	
    	public Mail()
    	{
    		// Valeur null
    		From = "";
    		To = "";
    	}
    	
    	public string SmtpServeur
    	{
    		set
    		{
    			NomServeur = value;
    			SmtpMail.SmtpServeur = value;
    		}
    		get
    		{
    			return NomServeur;
    		}
    	}
    	
    	public string MailFrom 
    	{
    		set
    		{
    			From = value;
    		}
    		get
    		{
    			return From;
    		}
    	}
    	
    	public string MailTo
    	{
    		set
    		{
    			To = value;
    		}
    		get
    		{
    			return To;
    		}
    	}
    	
    	public string MailMessage
    	{
    		set
    		{
    			Message = value;
    		}
    		get
    		{
    			return Message;
    		}
    	}
    	
    	public string MailSujet
    	{
    		set
    		{
    			Sujet = value;
    		}
    		get
    		{
    			return Sujet;
    		}
    	}
    	
    	public bool Envoyer()
    	{
    		try
    		{
    			Console.WriteLine();
    			Console.WriteLine("Connection au serveur : {0}" , NomServeur);
    			
    			// Envoi du mail
    			SmtpMail.Send (From,To,Sujet,
    											Message);
    			return true;
    		}
    		catch (Exception e)
    		{
    			Console.WriteLine("Erreur lors de l'envoi : {0}" , e.Message );
    			return false;
    		}
    	}
    
    	[STAThread]
    	static void Main(string[] args)
    	{
    		// Entete Main
    		Mail Smtp = new Mail();
    		
    		Console.Write("Serveur SMTP : ");
    		Smtp.SmtpServeur = Console.ReadLine();
    		
    		Console.Write("Votre e-mail : ");
    		Smtp.MailFrom = Console.ReadLine();
    		
    		Console.Write("Mail du destinateur : ");
    		Smtp.MailTo = Console.ReadLine();
    		
    		Console.Write("Subject Mail : ");
    		Smtp.MailSubjet = Console.ReadLine();
    		
    		Console.Write("Message : ");
    		Smtp.MailMessage = Console.ReadLine();
    		
    		if (Smtp.Envoyer())
    		{
    			Console.WriteLine("Fin de session : Ok");
    		}
    		else
    		{
    			Console.WriteLine("Fin de session : Erreur");
    		}
    		
    	Console.WriteLine("Pressez une touche...");
    	Console.Read();
    	}	
    }
}

Conclusion

Amusez-vous bien ;-)
  • signaler à un administrateur
    Commentaire de Virtua747 le 17/06/2002 18:49:55

    Quand je compile il me dans " System.Web.Mail " que Web n'existe pas.

  • signaler à un administrateur
    Commentaire de pornik le 18/06/2002 22:00:10

    T'as pas oublié de lier System.Web.dll au projet ;) ?

  • signaler à un administrateur
    Commentaire de boule le 10/11/2002 12:18:59

    Sa fonctionne en mode console j'ai insere cette classe dans mon projet je l'appelle a partir d'un formulaire et j'obtient : Impossible d'acceder à l'objet 'CDO.message'. Le pb c'est que je ne sais pas a quoi sa correspond.

  • signaler à un administrateur
    Commentaire de celene le 15/01/2003 18:33:20

    Cette classe ne compile pas, il y a deux erreurs de frappe :
    Smtp.MailSubjet  et SmtpMail.SmtpServeur.
    HALLUCINANT !!!

    Voici une classe qui fonctionne:
    using System;
    using System.Web.Mail;

    public class Mail{
      private string pour;
      private string de;
      private string sujet;
      private string message;
      private string serveurMail;

      public Mail(string pour, string de, string sujet, string message, string serveurMail){
        this.pour=pour;
        this.de=de;
        this.sujet=sujet;
        this.message=message;
        this.serveurMail=serveurMail;
      }

      public void envoyer(){
        try{
          Console.WriteLine();
          Console.WriteLine("Connection au serveur : {0}" , serveurMail);
          SmtpMail.SmtpServer = serveurMail;
          SmtpMail.Send(de,pour,sujet,message);
          Console.WriteLine("Message envoye");
        }
        catch (Exception e){
          Console.WriteLine("Erreur lors de l'envoi : {0}" , e.Message );
          Console.WriteLine("Fin de session : Erreur");
        }
        Console.WriteLine("Pressez une touche...");
        Console.Read();
      }

      static void Main(string[] args){
        Console.Write("Serveur SMTP : ");
        String serveurMail = Console.ReadLine();
        Console.Write("Votre e-mail : ");
        String de = Console.ReadLine();
        Console.Write("Mail du destinateur : ");
        String pour = Console.ReadLine();
        Console.Write("Subject Mail : ");
        String sujet = Console.ReadLine();
        Console.Write("Message : ");
        String message = Console.ReadLine();
        Mail mail=new Mail(pour, de, sujet, message, serveurMail);
        mail.envoyer();
      }
    }

  • signaler à un administrateur
    Commentaire de JCpp le 29/04/2003 19:59:58

    Idem
    Impossible d'acceder à l'objet 'CDO.message'. Le pb c'est que je ne sais pas a quoi sa correspond ?

  • signaler à un administrateur
    Commentaire de Dalcyon le 29/10/2003 21:54:13

    Le serveur smtp spécifié en ligne de commande ne doit pas être bon

  • signaler à un administrateur
    Commentaire de ledocdoc le 29/08/2004 18:24:42

    J'ai le meme probleme... alors que le serveur smtp est bon... alors... si tu as trouvé ou etait le pb... merci de m'aider... tcho...
    merci d'avance;)

  • signaler à un administrateur
    Commentaire de marloon le 10/09/2004 01:02:30

    Je viends de tester sur mon IIS,
    ca vient bien du fait qu'il faut que le serveur smtp fasse du relay.
    Chose rare de nos jours.

    A+,

    M.

  • signaler à un administrateur
    Commentaire de lolhangman le 12/04/2005 15:49:49

    salut, quelqu'un peut m'expliquer pourquoi outlook peut se connecter au server smtp sans probleme alors que mon programme ne le peut pas (si ce n'est pas en relay?) ???

  • signaler à un administrateur
    Commentaire de Dalcyon le 13/04/2005 10:10:36

    Le serveur smtp demande-t-il une authentification ?

    Sur quel serveur SMTP te connectes tu ?

  • signaler à un administrateur
    Commentaire de marloon le 13/04/2005 11:34:49

    Salut !
    Pour tester montes toi vite fait un serveur SMTP qui relay et essayes, au moins tu seras fixé.

    A+,

    M.

  • signaler à un administrateur
    Commentaire de lolhangman le 14/04/2005 17:20:56

    En ce qui me concerne je n'arrivait pas a me connecter meme en authentifié, j'ai finalement trouvé ca venait de l'entivirus qui bloquait le port 25 (mail)  

  • signaler à un administrateur
    Commentaire de marloon le 14/04/2005 17:44:32

    Ah bon ?
    Ok, tant mieux.
    Et ton outlook qui fonctionnait, il se l'ouvrait tout seul le port 25 ?   :)

    A+,

    M.

  • signaler à un administrateur
    Commentaire de Dalcyon le 14/04/2005 18:20:41

    Je dirai qu'outlook était une application autorisée par le firewall accéder au port 25 d'une autre bécanne ;)

  • signaler à un administrateur
    Commentaire de scoubidou944 le 15/01/2006 02:44:31

    pour le message CDO.Message truc j'ai eu le même, voici les lignes à vérifier :
    - serveur smtp
    - pièce jointe (le chemin doit etre complet sans le file://
    (en gros on n'utilise pas ce code (coming from Krosoft) directement
    string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
    )
    - sinon au pire on test avec le minimum de param et on voit si ca marche et on rajoute petit à petit

  • signaler à un administrateur
    Commentaire de scalpto le 04/01/2008 15:15:21

    Salut
    Sais tu comment ajouter a ce code la partie authentification pour les serveurs smtp qui le demandent?
    Merci

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS