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 : 17 308

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 ;-)
 

Commentaires et avis

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

Discussions en rapport avec ce code source dans le forum

Webmail erreur acces CDO.message 0x80040217 [ par Armis ] Salut,J'ai un problème avec ma connexion à mon serveur SMTP je crois...Voici mon code pour envoyer un mail à partir d'une WinApp en C#:MailMessage con [Debutant] Classes [ par shadow1779 ] Bonsoir,j'ai décidé de me mettre au C# etant donné que cela est fiable et assez proche du VB.NET , langage avec lequel je commence a etre assez initié Erreur :Le serveur SMTP a retourné une réponse non valide. [ par sharu_a99 ] salut Dans mon application j'ai un boutton qui doit transmettre des email a des personnes bien determiner , mais dé que je l'utilise l'erreur suivante Pb smtp lors d'envoi de mail [ par jagxx ] Bonjour à tous,Je suis entrain de développer une app qui envoie un mail a l'admin quand le temps d'un ping dépasse une certaine valeur un certain nomb Impossible d'envoyer un mail avec System.Net.Mail; [ par calisca ] Bonjour à tous, Tout d'abord merci pour votre site très complet, c'est vraiment pratique !!! Mon problème est le suivant : je dois réaliser un proje Annuler l'envoi d'un mail en cours [ par F2ATA ] Bonsoir,j'ai développé une application avec laquelle j'envoie des mails. dont voici un bout de code que présente comment je je fais :using System;usin mail et csharp (smtp) [ par maxime1989 ] Gérer réception / envoie de mail [ par guismo4781 ] Bonjour bonjour,Je suis actuellement en train de créer un programme sous Microsoft Visual Studio 2008 / langage C# / frameworks .NET 3.5 et mon progra Mail C# Reprise sur erreur [ par chinois0013 ] Bonjour, J'ai écrit un petit executable en c# (voir ci-dessous) qui me permet d'envoyer des analyses à ma direction qutodiennement via un batch planif Méthode en C# pour trouver mon adresse SMTP peu importe mon emplacement dans le monde. [ par likemuz25 ] Bonjour, je développe une application web en C# pour envoyer des mails, et je me demande s'il est possible de créer une méthode qui me permettrait d'a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,624 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.