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 !

C# - FONCTION TRÈS SIMPLE POUR ENVOYER UN MAIL VIA SMTP


Information sur la source

Catégorie :E-mail Source .NET ( DotNet ) Classé sous : email, smtp, mail Niveau : Débutant Date de création : 15/06/2006 Date de mise à jour : 16/06/2006 10:55:25 Vu : 34 459

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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


Description

Voila une fonction C# très simple permettant d'envoyer un mail via SMTP.
 

Source

  • using System.Web.Mail;
  • ...
  • /// <summary>
  • /// Send Mail for User by SMTP
  • /// </summary>
  • /// <param name="Contenu">Mail Boby</param>
  • /// <param name="Subject">Mail subject</param>
  • /// <param name="MailTo">Mail to adress</param>
  • /// <param name="MailFrom">Mail from adress</param>
  • /// <param name="SMTPServer">SMTP Server to use</param>
  • /// <param name="InHTML">Body Mail in HTML or not</param>
  • /// <returns>Send Mail sent OK ou Error</returns>
  • public static string SendMail(StringBuilder Contenu, string Subject, string MailTo, string MailFrom, string SMTPServer, bool InHTML)
  • {
  • string Retour = string.Empty;
  • MailMessage msg = null;
  • System.Text.Encoding MyEncoding = System.Text.Encoding.GetEncoding("iso-8859-1");
  • try
  • {
  • msg = new MailMessage();
  • msg.Body = Contenu.ToString();
  • msg.BodyEncoding = MyEncoding;
  • if (InHTML)
  • {
  • msg.BodyFormat = MailFormat.Html;
  • }
  • else
  • {
  • msg.BodyFormat = MailFormat.Text;
  • }
  • msg.Subject = Subject;
  • msg.From =MailFrom;
  • msg.To = MailTo;
  • SmtpMail.SmtpServer = SMTPServer;
  • SmtpMail.Send(msg);
  • Retour = "Mail sent to "+ MailTo;
  • }
  • catch(Exception ex)
  • {
  • Retour = "Error in Sendmail function - Details : "+ ex.ToString();
  • }
  • finally
  • {
  • msg = null;
  • MyEncoding = null;
  • }
  • return Retour;
  • }
using System.Web.Mail;

...


/// <summary>
/// Send Mail for User by SMTP
/// </summary>
/// <param name="Contenu">Mail Boby</param>
/// <param name="Subject">Mail subject</param>
/// <param name="MailTo">Mail to adress</param>
/// <param name="MailFrom">Mail from adress</param>
/// <param name="SMTPServer">SMTP Server to use</param>
/// <param name="InHTML">Body Mail in HTML or not</param>
/// <returns>Send Mail sent OK ou Error</returns>

public static string SendMail(StringBuilder Contenu, string Subject, string MailTo, string MailFrom, string SMTPServer, bool InHTML)
{
	string Retour = string.Empty;
	MailMessage msg = null;
	System.Text.Encoding MyEncoding = System.Text.Encoding.GetEncoding("iso-8859-1");
	try
	{
		msg = new MailMessage(); 
		msg.Body = Contenu.ToString();
		msg.BodyEncoding = MyEncoding;
		if (InHTML)
		{
			msg.BodyFormat = MailFormat.Html;
		}
		else
		{
			msg.BodyFormat = MailFormat.Text;
		}
		msg.Subject = Subject; 
		msg.From =MailFrom; 
		msg.To = MailTo; 
		SmtpMail.SmtpServer = SMTPServer; 
		SmtpMail.Send(msg); 
		Retour = "Mail sent to "+ MailTo;
	}
	catch(Exception ex)
	{
		Retour = "Error in Sendmail function - Details : "+ ex.ToString();
	}
	finally
	{
		msg = null;
		MyEncoding = null;
	}
	return Retour;
}

Conclusion

Cette fonction est utilisable telque.

Bon coding

Romelard Fabrice
 

Historique

16 juin 2006 10:55:25 :
Ajout de la gestion de l'encoding pour le corps du texte.

Commentaires et avis

signaler à un administrateur
Commentaire de poppyto le 16/06/2006 10:14:31 administrateur CS

Manque plus que l'encoding en System.Text.Encoding.GetEncoding("Windows-1252") du sujet et du corps du message et ça sera nickel ^^

signaler à un administrateur
Commentaire de fabrice69 le 16/06/2006 10:53:36 administrateur CS

Bonne remarque et merci.
Je l'ajoute de suite.

Pour la version C# 2.0, vous pouvez trouver le code ici :
- http://www.codyx.org/snippet_envoyer-mail_87.aspx#225

PS: SubjectEncoding n'est pas géré en C# 1.1.

Romelard Fabrice

signaler à un administrateur
Commentaire de poppyto le 16/06/2006 18:22:57 administrateur CS

[Troll] ça existe encore le 1.1 ? :D

signaler à un administrateur
Commentaire de sanaanour le 18/07/2006 12:25:45

Merci de votre code,il m’a aidé beaucoup dans m’application et j’ai besoin d’une autre code pour remplir un contrôle de liste à partir d'une base de données SQL server  (DopDownList) au C#

signaler à un administrateur
Commentaire de 1gima1 le 14/10/2006 06:07:13

Bonjour, je voulais le code pour m'envoyer un email avec smtp en vb.net sur un formulaire en asp.net, en me servant de Visual Web Developer 2005. Malgré mes efforts, rien ne marche...Le
System.Web.Mail.MailMessage est obselete, il veut:System.Net.Mail.MailMessage mais ça ne fonctionne pas plus!
Au secours 1gima1

signaler à un administrateur
Commentaire de poppyto le 14/10/2006 10:52:17 administrateur CS

>>> 1gima1
http://www.codyx.org/snippet_envoyer-mail_87.aspx

signaler à un administrateur
Commentaire de 1gima1 le 14/10/2006 21:42:51

Merci pour le lien, c'est formidable! Présentement, j'essaie d'adapter le code vb.net à mon tp(envoyer le contenu d'un label à notre email personnel. Tout ceci en travaillant sur Visual Web Develpper 2005)Il dit que le format des arguments est incorrect.Mardi j'ai un examen, j'espère l'adapter d'ici là...

Merci infiniment,l'aide est grandement appréciée. 1gima1

signaler à un administrateur
Commentaire de bela27 le 15/10/2006 09:22:44

Bonjour à tous,
j'ai repris le code défini par fabrice69 pour l'envoi d'un mail par une application c# mais lorsque je l'exécute j'obtiens l'erreur suivante:

Error in Sendmail function - Details : System.Web.HttpException: Le transport a
échoué dans sa connexion au serveur.
---> System.Reflection.TargetInvocationException: Exception has been thrown by
the target of an invocation. ---> System.Runtime.InteropServices.COMException (0
x80040213): Le transport a échoué dans sa connexion au serveur.

   --- End of inner exception stack trace ---
   at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr,
Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[]
namedParameters)
   at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Bi
nder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers
, CultureInfo culture, String[] namedParams)
   at System.Web.Mail.SmtpMail.LateBoundAccessHelper.CallMethod(Object obj, Stri
ng methodName, Object[] args)
   --- End of inner exception stack trace ---
   at System.Web.Mail.SmtpMail.LateBoundAccessHelper.CallMethod(Object obj, Stri
ng methodName, Object[] args)
   at System.Web.Mail.SmtpMail.CdoSysHelper.Send(MailMessage message)
   at System.Web.Mail.SmtpMail.Send(MailMessage message)
   at courriel.SendMail(StringBuilder Contenu, String Subject, String MailTo, St
ring MailFrom, String SMTPServer, Boolean InHTML)

est-ce que quelqu'un peut m'aider SVP. Merci !
Bela27

signaler à un administrateur
Commentaire de bela27 le 15/10/2006 12:24:04

rebonjour à tous,
je viens de régler le problème, c'est le logiciel McAfee VirusScan qui bloquait l'accès. lorsque je le désactive, ça fonctionne. cela m'amène à poser une autre question: comment outrepasser la protection de McAfee lorsqu'il est activé ?

Merci.
Bela27

signaler à un administrateur
Commentaire de jimmy69 le 16/10/2006 14:38:19

salut salut,

il me fallait un bon exemple d'envoit de mail avec asp.net et te voila encore :-) !

tu es partout toi :-) asp net, php, sql, ...!

Merci pour ce code bien utile
Christophe

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

html dans asp [ par fuji ] salut,j'envois un mail de confirmation à l'adresse de la personne qui s'est abonné à ma newsletter et j'arrive pas à mettre un texte à la ligne!Je vou Serveur SMTP SSL [ par esmjpe ] Je voudrais envoyer un mail par le biais d'un serveur sécurisé SSL.Il me faut donc deux choses:- l'envoi d'un mail à un serveur autre que le SMTP du s Pb SMTP [ par benj71 ] Voila mon pb:dans mon site, j'envoie des mails en auto lors de l'inscription d'une nouvelle personne.Ma fonction d'envoie de mail marche bien vu que j envoi de mail via cdonts et smtp...mail se retrouve dans badmail [ par VB ] qui connais un site sur la config smtp de iis car moi j'ai des messages qui sont dans le répetoire badmail quand j'envoi un mail ...???sinon ce serais AU SECOURS : SMTP ASPSMARTMAIL !!!!! [ par lawraC ] Bonjour,j'utilise aspSmartMail pour une appli web interne à ma société. Le site web est placé sur IIS , windows 2000.Lorsque j'essaie d'envoyer le mai Email Formulaire Web HTML [ par TORIUKE ] Salut,Je veux envoyer un email automatique à partir d'un formulaire. Quand je clic sur "envoyer", le mail part automatiquement au destinataire avec le problem formulaire en asp !!! [ par steve3960 ] steve3960bonjour j'ai un petit problem avec un script pour envoyer un formulaire voila mont prob j'ai un formulaire avec plusieur cham il envoye l'ema Trouver un serveur smtp qui ceuille de moi... [ par scoubigee ] Voici mon problem : jmail.SMTPMail error '8000ffff' The message was Problème d'accent inacceptable dans une date [ par lnp ] Voil&#224; le code : &lt;% REM recuperation des parametres nom = request.form("nom") ville = request.form("ville") email = request.form("email") if e Envoi d'un mail en asp.net 2.0 en html [ par AnnuMada ] Je d&#233;sire &#224; patire d'une page aspx envoyer un mail en html.Jusque l&#224; pas de probl&#233;me cela fonction tr&#233;s bien.Voici mon code &


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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 : 1,56 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é.