Envoyer un email à partir de MySQL se déclenchent quand un tableau mis à jour
Considérer un tableau comme table2
, je tiens à ajouter trigger
sur cette table update
comme
select Num into num from table1 where ID=new.id;
BEGIN
DECLARE done int default false;
DECLARE cur1 CURSOR FOR select EmailId from users where Num=num;
DECLARE continue handler for not found set done = true;
OPEN cur1;
my_loop: loop
fetch cur1 into email_id;
if done then
leave my_loop;
end if;
//send mail to all email id.
end loop my_loop;
close cur1;
END;
Est-il une méthode simple pour écrire à la place commenté? Pour envoyer un e-mail à tous les e-mail de l'id récupéré à partir de la table users
.
Je suis de l'utilisation de MySQL dans XAMPP(phpmyadmin).
Vous devez vous connecter pour publier un commentaire.
Je suis contre cette solution. De mettre à la charge de l'envoi d'e-mails dans votre Serveur de Base de données pourrait se terminer très mal.
À mon avis, ce que vous devez faire est de créer une table des files d'attente les e-mails que vous souhaitez envoyer et de disposer d'un processus qui vérifie si il y a des e-mails envoyés et de les envoyer s'il est positif.
have a process that checks if there are emails to be sent
? et où j'ai besoin d'écrire le mail d'envoi de code? confus.Comme tout le monde le dit, faisant de votre base de données pour traiter les E-Mails est une mauvaise idée. Faire de votre base de données pour écrire un fichier externe est une autre mauvaise idée car les opérations d'e /s sont de temps par rapport aux opérations de base de données.
Il y a plusieurs façons de résoudre votre problème, un problème que j'aime: le fait d'Avoir une table à la file d'attente de vos notifications/e-mails et un programme client de l'envoi des e-mails.
Avant de continuer, assurez-vous que vous avez un compte E-Mail ou d'un service que vous pouvez utiliser pour envoyer des e-mails. Il pourrait être SMTP ou de tout autre service.
Si vous êtes sur .NET, vous pouvez copier ce, si vous obtenez l'idée de la façon de les réécrire dans votre plate-forme
Créer une table dans votre base de données
ce tableau va contenir tous vos notifications et des courriels. Votre Table de déclenchement ou d'événements qui tente d'envoyer un e-mail ajouter un enregistrement à la table ci-dessus. Votre client pourra alors récupérer les e-mails et l'envoi à un intervalle que vous spécifiez.
Voici un exemple d'une application de console sur .NET juste pour vous donner une idée de la façon dont le client pourrait ressembler. Vous pouvez modifier en fonction de vos besoins. ( J'utilise de l'Entité cadre de son beaucoup plus facile et plus simple)
Dans la même Application.Fichier de configuration, ajouter votre e-mail SMTP paramètres.
vérifiez votre port et de l'option ssl
Créer un nouveau Dossier appelé Modèles dans l'arborescence de votre projet.
Maintenant, vous disposez d'une connexion à votre base de données et email configurations en place. Son temps à lire des e-mails et de les expédier.
Voici un programme complet pour comprendre le concept. Vous pouvez modifier cette valeur si vous avez win application ou d'une application web un de coopérer à cette idée.
Cette console application vérifie toutes les minutes pour les nouveaux dossiers de courriel et les expédie. Vous pouvez étendre tableau ci-dessus et ce script pour être en mesure d'ajouter des pièces jointes.
pour Tester: Exécution de code ci-dessus et insérer un enregistrement dans votre tbl_system_mail_pickup table. En 1 minute environ, vous recevrez un e-mail à l'expéditeur que vous avez spécifié.
Espère que cela aide quelqu'un.
Vous a demandé, "est-il une méthode simple pour ... envoyer un e-mail" à partir d'un élément déclencheur?
La réponse est pas, pas dans la norme MySQL.
Ceci est habituellement fait par la création d'une sorte de pending_message table et l'écriture d'un programme client pour interroger la table régulièrement et envoyer les messages.
Ou, vous pourriez envisager d'utiliser un défini par l'utilisateur MySQL fonction. Mais la plupart de la production des applications n'aime pas beaucoup le réseau de renforcement des fonctions comme l'envoi de courrier électronique dans leurs bases de données, car les performances peuvent être imprévisibles.