Question

J'ai envoyé des e-mails de C # et ils fonctionnent bien, mais maintenant je recherche également la fonctionnalité pour permettre au récepteur de se désabonner. Je ne peux pas comprendre comment procéder car je n'en ai aucune idée. J'ai suffisamment googlé donc j'ai besoin d'un indice.

Vous trouverez ci-dessous mon code:

  MailMessage loginInfo = new MailMessage();
  loginInfo.To.Add(EmailTxt.Text.ToString());
  loginInfo.From = new MailAddress(sEmailId);
  loginInfo.Subject = "Subject";
  loginInfo.Body = "Your username is: " +;
  loginInfo.IsBodyHtml = true;

  SmtpClient smtp = new SmtpClient();
  smtp.Host = sHost;
  smtp.Port = 25;
  smtp.EnableSsl = false;
  smtp.Credentials = new System.Net.NetworkCredential("", "");
  smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
  smtp.Send(loginInfo); 
Était-ce utile?

La solution

Le désabonnement est facile si vous maintenez déjà les ID de messagerie électronique des utilisateurs dans la base de données.

Veuillez suivre les étapes ci-dessous:

Étape 1: Créer une colonne supplémentaire dans la table utilisateur comme unsubscribe dans la base de données. ça prendra true ou false comme valeurs. Définir la valeur par défaut sur false de sorte que chaque utilisateur souscrit reçoit un e-mail.

Remarque: Avant d'envoyer des e-mails aux utilisateurs, veuillez vérifier leur unsubscribe colonne. S'il est faux, envoyez un e-mail. S'il est vrai, n'envoyez pas un e-mail car ils n'ont pas été inscrits.

Étape 2: Créez une URL de désabonnement comme ci-dessous:

http://mywebsite.com/unsubscribeme/emailID=xyz@gmail.com

Étape 3: Envoyez cette URL à l'utilisateur comme désabonnement URL afin que chaque fois qu'il se sente à désabonner, il peut le faire simplement en cliquant sur cette URL.

Étape 4: Une fois, si l'utilisateur clique sur URL donnée, lisez la valeur de requête de E-EmailID emailID=xyz@gmail.com

Étape 5: Mettez à jour les informations sur la table utilisateur en définissant le unsubscribe Valeur de colonne à true.

Exemple :

 //get user EmailID by QueryString as below:
 String EmailID=Reques.QueryString["emailID"].ToString();

//Update the usertable as below:
String Command ="update usertable set unsubscribe='true' where emailid='"+EmailID+"'";

Autres conseils

Je suppose que vos abonnés sont stockés quelque part. Ainsi, le moyen facile de se désabonner est de supprimer l'enregistrement du magasin par son adresse e-mail.

Cela n'a rien à voir avec la classe SMTPClient.

Le concept de liste de diffusion comprend une liste d'adresses e-mail, généralement enregistrées dans une base de données. Votre code ajoute le récepteur à partir d'un "emailtxt", je suppose qu'une zone de texte?

  • Tant que vous n'enregistrez pas les adresses e-mail quelque part, il n'est pas nécessaire de vous désabonner
  • Si vous enregistrez les adresses e-mail, créez un autre fichier qui permet aux gens de vous désabonner.

Un fichier de désabonnement fonctionnerait généralement comme suit:

  • Recevez l'adresse e-mail pour se désabonner en tant que paramètre de requête
  • Affichez cette adresse e-mail dans une seule zone de texte, ainsi qu'un bouton "désabonner"
  • Si l'utilisateur clique sur ce bouton, supprimez l'adresse e-mail de la base de données.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top