C# - fonction très simple pour envoyer un mail via smtp

Soyez le premier à donner votre avis sur cette source.

Snippet vu 79 322 fois - Téléchargée 25 fois

Contenu du snippet

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

Source / Exemple :


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

A voir également

Ajouter un commentaire

Commentaires

Messages postés
29
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 mai 2009

Bonsoir,

Comment faire lorsque le serveur renvoie : 501 Syntax: EHLO hostname ?
Impossible de trouver une solution....

Help !!
Merci.
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008

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
Messages postés
4
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
22 octobre 2007

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
Messages postés
4
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
22 octobre 2007

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
Messages postés
7
Date d'inscription
jeudi 3 novembre 2005
Statut
Membre
Dernière intervention
18 mars 2007

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
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.