Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Envoyer une newsletter à une liste d'adresse mail stocké dans une base de données

4/5 (3 avis)

Snippet vu 5 015 fois - Téléchargée 4 fois

Contenu du snippet

Bonjour,
Un petit bout de code permettant l'envoi d'emails dans un but de télémarketing.
je vais vous présenter comment envoyer un email à une liste d'adresse emails contenu dans une base de donnée, et que cet e-mail ne soit pas reçu dans le dossier de courrier indésirable de vos correspondant...

Dans le cadre de la lutte contre le spam, j'interdis formellement l'utilisation de ce code source à des fins de spamming et de ce fait vous devriez inclure une fonction permettant aux destinataire la possibilité de ce désinscrire de votre newletter et donc d'établir une requete SQL DELETE afin de supprimer son adresse mail...

Source / Exemple :


/*Proposé par MAGHRAOUI Hisham - code source libre de droits */

/* Dans un premier temps créer une page aspx et un inclure un bouton "Envoyer" */
/* Ensuite ouvrez la page que vous venez crée .cs > mapage.aspx.cs */
/*En haut de cette page inclure : 
using System.Data;
using System.Data.SqlClient;

  • /
using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class HTTP_mon_repertoire_ma_page : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { /*cette parti concerne uniquement si vous souhaité afficher une valeur au chargement de la page*/ } protected void btnSend_Click(object sender, EventArgs e) { /* Ici c'est l'instruction du bouton envoyer, on va commencer par ouvrir la base de donnée en question */ SqlConnection MyConn = new SqlConnection("Server=MonServeur;trusted_connection=true;database=MaBase"); MyConn.Open(); /* on ouvre la connexion sql */ /* on lit la table "testnews" pour récupérer les emails */ SqlCommand MyCom = new SqlCommand("select email from testnews", MyConn); /* on affiche la lecture des données */ SqlDataReader DR = MyCom.ExecuteReader(); while (DR.Read()) /* tant que la table est en lecture jusqu'à la dernière ligne */ { string maliste = DR["email"].ToString(); /* je créer un objet de type string pour faire présentable */ string strBody; /* variable pour le contenu du message en mode HTML */ /* Utilisation de la classe System.Web.Mail.MailMessage */ System.Web.Mail.MailMessage mailMessage = new System.Web.Mail.MailMessage(); mailMessage.From = "adresse@expediteur.com"; /* il faut éviter les adresses de type "newsletter@expediteur.com" */ mailMessage.To = maliste; /* je récupere la liste d'emails de ma table mais le champ To affichera uniquement l'adresse du destinataire concerné*/ mailMessage.Bcc = maliste; /* je récupère la liste d'emails de ma table et ce Champ BCC envoi à toute la liste sans que ceux-ci aient connaissance des adresses mails des autres destinataires */ mailMessage.Subject = "Formulaire de contact web"; /* sujet du mail */ mailMessage.BodyFormat = System.Web.Mail.MailFormat.Html; /* format du mail */ strBody = "<font face=arial>" + "<b><u>test newsletter !! :</u></b><br><br>"; strBody = strBody + "<b>Message :</b>" + "<br>"; strBody = strBody + "<b>Salut les zigoto ceci est une newsletter sans diffuser l'adresse des destinataire</b>" + "<br>"; mailMessage.Body = strBody; /* on selectionne tout le contenu de l'objet strBody donc le contenu en html du message dans cet exemple */ // TODO: Set the mailMessage.Body property System.Web.Mail.SmtpMail.SmtpServer = "MonServeurSMTP"; /* On défini le serveur smtp qui va envoyer ce message */ System.Web.Mail.SmtpMail.Send(mailMessage); /* on envoi le message */ } /* on ferme la boucle */ DR.Close(); /* on ferme la lecture de la table */ } } /* Votre NewsLetter à été envoyé avec succès :p */

Conclusion :


On espérant que ça peut aider les nouveaux stagiaire développeur hihihi ^^
@ ciao bon dimaaannnnnche :/ on n'est pas dimanche :(

A voir également

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.