Envoi d'emails avec les classes .net - mail message

Soyez le premier à donner votre avis sur cette source.

Vue 12 840 fois - Téléchargée 980 fois

Description

Cette source montre comment utiliser les classes du .net framework 2.0 pour envoyer des emails bien structurés.

Source / Exemple :


using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Net.Sockets;
using System.IO;
using System.Collections;

/* Cette classe va être la classe de notre application */

namespace MailNetClass
{
    class Mailer
    {
        private MailAddress adrMail; // 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 att; // une variable attachement pour ajouter des fichiers joints
        

        public Mailer()
        {
            // initialisation des variables
            mail = new MailMessage(); 
            smtp = new SmtpClient();
        }
        
        /* Fonction qui permet d'envoyer les mails */

        public void sendMail(String Destinataires,String CC, String CCC, String Subject, ArrayList joints, String Body)
        {
           // On lit le fichier de configuration qui contient l'adresse mail de l'expéditeur ainsi que @ du serverur smtp
           // stockés comme sui  nom_user@domaine.com%ip_serveur_smtp

            String str = File.ReadAllText("C:\\mail.ini"); ;
            String[] f = str.Split('%');
            
            adrMail = new MailAddress(f[0], f[2]);
            smtp = new SmtpClient(f[1]);
            
            int i = 0;
            
            // La fonction admet comme paramètre un arraylist qui contient les noms des fichiers joints, on les rajoute au attachements du mail message

            for (i = 0; i <= joints.Count - 1; i++)
            {
                att = new Attachment((String)joints[i]);
                mail.Attachments.Add(att);
            }

            // Test sur les adresses des destinataires si elle est vide

            if (Destinataires ==string.Empty )
            {
                throw new Exception("La liste des destinataires ne peut pas être vide !");
            }
            mail.To.Add(Destinataires);
            mail.Subject = Subject;
            if (CC != String.Empty)
            { 
                mail.CC.Add(CC); 
            }
            if (CCC != String.Empty)
            {
                mail.Bcc.Add(CCC);
            }
            mail.Body = Body;
            mail.From = adrMail;

            // Envoi du mail

            smtp.Send(mail);
        }
    }
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

ajouini
Messages postés
1
Date d'inscription
samedi 27 avril 2013
Statut
Membre
Dernière intervention
2 mai 2013
-
merci de bien vouloir m'aider au niveau de ce message d'erreur "impossible de trouver le fichier C:\mail.ini"
Belouafi
Messages postés
6
Date d'inscription
lundi 21 août 2006
Statut
Membre
Dernière intervention
14 août 2010
-
Bonne journée alors :D
wzis612
Messages postés
2
Date d'inscription
samedi 14 août 2010
Statut
Membre
Dernière intervention
14 août 2010
-
j'ai rien dit :p
wzis612
Messages postés
2
Date d'inscription
samedi 14 août 2010
Statut
Membre
Dernière intervention
14 août 2010
-
bonjour,

Ou trouver le mail.ini car cela me fait une erreur ..

Merci
MrCapo
Messages postés
2
Date d'inscription
jeudi 14 septembre 2006
Statut
Membre
Dernière intervention
13 juillet 2009
-
Mon commentaire vient un peu en retard.
Si j'ai bien suivi le débat.
J'apporte ma connaissance à ce sujet.
Les règles disent qu'il faut vérifier l'état des variables saisies par l'utilisateur, ce qui est fait.
Et aussi et surtout
lors de l'utilisation d'un Stream, il faut toujours mettre l'opération entre un bloque try catch et capter l'exception. Dans ce cas, l'opération d'envoi et une opération d'écriture dans un flux de donnée, de type particulier, mais ça reste une écriture dans un Stream, pareil que dans un fichier. Donc, il faut mettre le send entre try{}catch(){}
Je vous donne le pour quoi:
Imaginer que toutes les variables contiennent les bonnes valeurs, jusqu'à la tout est bon.
Mais, tu n'es pas sure que le serveur ne va pas te répondre, alors il y aura une erreur qui va cracher l'application.
Une écriture dans un fichier est simple, ouvrir, écrire et fermer. Mais si le fichier est réservé par un autre processus, c'est le même cas ici.

Conclusion:
Vérification de variable : IF et TRYPARSE
manipulation d'un stream ==> BLOCK TRY CATCH

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.