Accueil > > > CLASSE D'ENVOIE DE MAIL PAR SMTPCLIENT
CLASSE D'ENVOIE DE MAIL PAR SMTPCLIENT
Information sur la source
Description
Petite classe permettant d'envoyer un mail avec ou sans PJ. Dans l'exemple je prend un fichier html pour le corp mais on peut le faire dans le code.
Source
- //************** Test ******************
- using System;
- using System.Windows.Forms;
- using System.Collections;
- using System.IO;
-
- namespace EnvoiMail
- {
- class Program
- {
- static void Main(String[] args)
- {
- String sSubj;
- String sFileBody;
- String sSmtpServeur;
- String sAddExpediteur;
- String sNomExpediteur;
- String sAddDestinataire;
-
- #if DEBUG
- sSubj = "Test";//"Objet du Mail";
- sFileBody = "Body.html";//"Chemin vers un fichier html contenant le corps du mail";
- sSmtpServeur = "Serveur smtp";
- sAddExpediteur = "email de l'expediteur";
- sNomExpediteur = "Toto";//"Nom de l'expediteur";
- sAddDestinataire = "email des destinataires (Séparateur ';')";
- #else
- //Gestion des variables args en mode Release
-
- //
- #endif
- SendMail Mail = new SendMail(sSmtpServeur, sAddExpediteur, sNomExpediteur);
- ArrayList Dest = new ArrayList();
- foreach (String sAdd in sAddDestinataire.Split(';'))
- {
- Dest.Add(sAdd);
- }
-
- String Subj = sSubj;
- StreamReader sr = new StreamReader(sFileBody);
- String sBody = sr.ReadToEnd();
- sr.Close();
-
- if (Mail.sendMail(Dest, null, null, Subj, null, sBody, true))
- MessageBox.Show("Mail Envoyé");
- else
- MessageBox.Show("Erreur");
- }
- }
- }
-
- //********* Fichier Body.html **********
- <br>
- Bonjour,
- <br>
- Ceci est un test.
- <br>
- Cdt.
- <br>
-
- //********** Classe SendMail ***********
- using System;
- using System.Net.Mail;
- using System.Collections;
-
- namespace EnvoiMail
- {
- public class SendMail
- {
- private MailAddress _adrExpMail; // Adresse mail de expéditeur
- private MailMessage _mail; // le mail lui même
- private SmtpClient _smtp; // une variable pour gérer le serveur SMTP
- private Attachment _attachement; // une variable attachement pour ajouter des fichiers joints
-
- public SendMail()
- {
- // initialisation des variables
- _mail = new MailMessage();
- _smtp = new SmtpClient();
- _adrExpMail = new MailAddress("","");
- }
-
- public SendMail(string sServerSmtp)
- {
- // initialisation des variables
- _mail = new MailMessage();
- _smtp = new SmtpClient(sServerSmtp);
- _adrExpMail = new MailAddress("","");
- }
-
- public SendMail(string sServerSmtp, string sExpediteur, string sDisplayName)
- {
- // initialisation des variables
- _mail = new MailMessage();
- _smtp = new SmtpClient(sServerSmtp);
- _adrExpMail = new MailAddress(sExpediteur, sDisplayName);
- }
-
- //variable pour gérer le serveur SMTP
- public SmtpClient smtp
- {
- get
- {
- return _smtp;
- }
- set
- {
- _smtp = value;
- }
- }
-
- //variable pour le mail (lecture uniquement)
- public MailMessage mail
- {
- get
- {
- return _mail;
- }
- }
-
- //variable adresse mail expediteur
- public MailAddress AdresseMailExpediteur
- {
- get
- {
- return _adrExpMail;
- }
- set
- {
- _adrExpMail = value;
- }
- }
-
- /// <summary>
- /// Envoi de l'email
- /// </summary>
- /// <param name="sDestinataires">Listes des destinataires</param>
- /// <param name="sCC"> Listes des destinataires en copie</param>
- /// <param name="sCCC"> Listes des destinataires en copie cachée </param>
- /// <param name="sSubject"> Sujet de l'email</param>
- /// <param name="sjoints"> Liste des pieces jointes</param>
- /// <param name="sBody">Corps du message </param>
- /// <param name="bBodyHtml">True = html, false = texte </param>
- public Boolean sendMail(ArrayList sDestinataires, ArrayList sCC, ArrayList sCCC, String sSubject, ArrayList sJoints, String sBody,Boolean bBodyHtml)
- {
- Boolean bRetour=false;
- try
- {
-
- // Si pas de destinataires on sort avec une erreur
- if (sDestinataires == null && sDestinataires.Count != 0)
- {
- bRetour = false;
- throw new Exception("La liste des destinataires ne peut pas être vide !");
-
- }
-
- //ajout des destinataires.
- for (int i = 0; i <= sDestinataires.Count - 1; i++)
- {
- _mail.To.Add(((String)sDestinataires[i]));
- }
-
-
- //ajout des destinataires en copie
- if (sCC != null)
- {
- for (int i = 0; i <= sCC.Count - 1; i++)
- {
- _mail.CC.Add(((String)sCC[i]));
- }
- }
-
- //ajout des destinataires en copie caché
- if (sCCC != null)
- {
-
- for (int i = 0; i <= sCCC.Count - 1; i++)
- {
- _mail.Bcc.Add(((String)sCCC[i]));
- }
- }
- //ajout des pieces jointes.
- if (sJoints != null)
- {
- for (int i = 0; i <= sJoints.Count - 1; i++)
- {
- _attachement = new Attachment((String)sJoints[i]);
- _mail.Attachments.Add(_attachement);
- }
- }
- // ajout du sujet.
- _mail.Subject = sSubject;
-
- //on ajoute le corps du message
- _mail.IsBodyHtml = bBodyHtml;
- _mail.Body = sBody;
-
- //on ajoute l'expediteur
- _mail.From = _adrExpMail;
-
- // Envoi du mail
- _smtp.Send(_mail);
-
- bRetour = true;
-
- }
- catch
- {
- bRetour = false;
- }
-
- return bRetour;
- }
- }
- }
//************** Test ******************
using System;
using System.Windows.Forms;
using System.Collections;
using System.IO;
namespace EnvoiMail
{
class Program
{
static void Main(String[] args)
{
String sSubj;
String sFileBody;
String sSmtpServeur;
String sAddExpediteur;
String sNomExpediteur;
String sAddDestinataire;
#if DEBUG
sSubj = "Test";//"Objet du Mail";
sFileBody = "Body.html";//"Chemin vers un fichier html contenant le corps du mail";
sSmtpServeur = "Serveur smtp";
sAddExpediteur = "email de l'expediteur";
sNomExpediteur = "Toto";//"Nom de l'expediteur";
sAddDestinataire = "email des destinataires (Séparateur ';')";
#else
//Gestion des variables args en mode Release
//
#endif
SendMail Mail = new SendMail(sSmtpServeur, sAddExpediteur, sNomExpediteur);
ArrayList Dest = new ArrayList();
foreach (String sAdd in sAddDestinataire.Split(';'))
{
Dest.Add(sAdd);
}
String Subj = sSubj;
StreamReader sr = new StreamReader(sFileBody);
String sBody = sr.ReadToEnd();
sr.Close();
if (Mail.sendMail(Dest, null, null, Subj, null, sBody, true))
MessageBox.Show("Mail Envoyé");
else
MessageBox.Show("Erreur");
}
}
}
//********* Fichier Body.html **********
<br>
Bonjour,
<br>
Ceci est un test.
<br>
Cdt.
<br>
//********** Classe SendMail ***********
using System;
using System.Net.Mail;
using System.Collections;
namespace EnvoiMail
{
public class SendMail
{
private MailAddress _adrExpMail; // Adresse mail de expéditeur
private MailMessage _mail; // le mail lui même
private SmtpClient _smtp; // une variable pour gérer le serveur SMTP
private Attachment _attachement; // une variable attachement pour ajouter des fichiers joints
public SendMail()
{
// initialisation des variables
_mail = new MailMessage();
_smtp = new SmtpClient();
_adrExpMail = new MailAddress("","");
}
public SendMail(string sServerSmtp)
{
// initialisation des variables
_mail = new MailMessage();
_smtp = new SmtpClient(sServerSmtp);
_adrExpMail = new MailAddress("","");
}
public SendMail(string sServerSmtp, string sExpediteur, string sDisplayName)
{
// initialisation des variables
_mail = new MailMessage();
_smtp = new SmtpClient(sServerSmtp);
_adrExpMail = new MailAddress(sExpediteur, sDisplayName);
}
//variable pour gérer le serveur SMTP
public SmtpClient smtp
{
get
{
return _smtp;
}
set
{
_smtp = value;
}
}
//variable pour le mail (lecture uniquement)
public MailMessage mail
{
get
{
return _mail;
}
}
//variable adresse mail expediteur
public MailAddress AdresseMailExpediteur
{
get
{
return _adrExpMail;
}
set
{
_adrExpMail = value;
}
}
/// <summary>
/// Envoi de l'email
/// </summary>
/// <param name="sDestinataires">Listes des destinataires</param>
/// <param name="sCC"> Listes des destinataires en copie</param>
/// <param name="sCCC"> Listes des destinataires en copie cachée </param>
/// <param name="sSubject"> Sujet de l'email</param>
/// <param name="sjoints"> Liste des pieces jointes</param>
/// <param name="sBody">Corps du message </param>
/// <param name="bBodyHtml">True = html, false = texte </param>
public Boolean sendMail(ArrayList sDestinataires, ArrayList sCC, ArrayList sCCC, String sSubject, ArrayList sJoints, String sBody,Boolean bBodyHtml)
{
Boolean bRetour=false;
try
{
// Si pas de destinataires on sort avec une erreur
if (sDestinataires == null && sDestinataires.Count != 0)
{
bRetour = false;
throw new Exception("La liste des destinataires ne peut pas être vide !");
}
//ajout des destinataires.
for (int i = 0; i <= sDestinataires.Count - 1; i++)
{
_mail.To.Add(((String)sDestinataires[i]));
}
//ajout des destinataires en copie
if (sCC != null)
{
for (int i = 0; i <= sCC.Count - 1; i++)
{
_mail.CC.Add(((String)sCC[i]));
}
}
//ajout des destinataires en copie caché
if (sCCC != null)
{
for (int i = 0; i <= sCCC.Count - 1; i++)
{
_mail.Bcc.Add(((String)sCCC[i]));
}
}
//ajout des pieces jointes.
if (sJoints != null)
{
for (int i = 0; i <= sJoints.Count - 1; i++)
{
_attachement = new Attachment((String)sJoints[i]);
_mail.Attachments.Add(_attachement);
}
}
// ajout du sujet.
_mail.Subject = sSubject;
//on ajoute le corps du message
_mail.IsBodyHtml = bBodyHtml;
_mail.Body = sBody;
//on ajoute l'expediteur
_mail.From = _adrExpMail;
// Envoi du mail
_smtp.Send(_mail);
bRetour = true;
}
catch
{
bRetour = false;
}
return bRetour;
}
}
}
Historique
- 20 avril 2012 12:54:36 :
- le .Count :)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Pbl d'envoi de mail [ par coinki ]
Salut,J'ai un problème lorsque je souhaite envoyer un mail grâce aux lib System.Net.Mail.J'utilise .Net 2.0 avec VS2005 Express.Mon code :
Probléme d'envoi mail [ par drcmomo ]
Bonjour tout le monde , J'ai un Formulaire dans le lequel je dois saisir des données, en cliqueant sur le bouton Valider je dois aussi envoyer un mail
Connaitre client email par defaut [ par wald39 ]
Bonjour à tous,Je voulais savoir comment connaitre le programme client pour les emails par défaut.En faite dans mon appli je voudrais un bouton qui ou
envoi Email avec C# [ par goldziko9 ]
salut tous le monde ! j'ai un problems avec l'envoi du mail en C# ;j'explique m'a situation : je travail sur une apllication de publiciter par mai
[c#]WinForms pb envoi mail smtp [ par ludo27600 ]
bonjour,j'essaie d'envoyer un mail stmp en WinForms.Je ne retrouve pas les objets System.Web.Mail en WinForms (que j'ai utilisés en WebForms); J'arriv
c# envoi mail SmtpFailedRecipientException [ par mr_chafik ]
bonjour a tousje suis entrains de développer une appli dont l une des fonctionnalité est d'envoyer un mail a l'aide de SmtpClient et MailMessage po
ENVOI EMAIL [ par handoura02 ]
Salut a tous J ai une petite probleme consiste a envoyer un email a partir de mon application je met la code suivant mais ca ne marche pas
Envoi de mail mais si email erroné dans la boucle l'envoi ne se fait pas [ par yann591 ]
bonjour, voila g ma ptite fonction pour envoyé des mail :MailMessage email = new MailMessage(); email = MailFormat.Html;
[Mail] Champs CC et Bcc récalcitrants [ par Ikki2504 ]
Bonjour à tous,Ma question est probablement stupide, mais ça fait des heures que je bute là dessus, et la msdn ainsi que la bonne douzaine de forums v
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
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|