Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Ce script Tcl pour Eggdrop permet de créer et envoyer des messages électroniques en utilisant le programme sendmail. Le script utilise des namespaces pour éviter les conflits de noms avec d'autres scripts ou packages Tcl.
- Pour utiliser ce script, vous pouvez créer une instance en appelant la méthode de fabrique "create" de l'espace de noms "EggMail". Ensuite, vous pouvez appeler la méthode "setMessage" de l'instance pour définir les destinataires, le sujet et le corps du message. Enfin, vous pouvez appeler la méthode "sendMail" pour envoyer le message.
- Voici un exemple d'utilisation :
- ---
- # Chargement du script
- source EggMail.tcl
- # Création d'une instance du script
- set emailScript [EggMail::create]
- # Définition des destinataires, sujet et corps du message
- set recipients {user1@example.com user2@example.com}
- set cc {user3@example.com user4@example.com}
- set subject "Test email"
- set body "Hello,\n\nThis is a test email.\n\nBest regards,\n"
- # Appel de la méthode pour définir le message
- $emailScript setMessage $recipients $cc $subject $body
- # Envoi du message
- $emailScript sendMail
- ---
- Ce code crée une instance du script, définit les destinataires, le sujet et le corps du message, définit le message en appelant la méthode "setMessage" de l'instance, puis envoie le message en appelant la méthode "sendMail". Notez que le script utilise la commande sendmail pour envoyer le message, donc vous devez vous assurer que sendmail est installé et configuré correctement sur votre système.
- Voici le script EggSendMail par zartek-creole https://github.com/ZarTek-Creole:
- # Namespace declaration
- namespace eval EggMail {}
- # Variables declaration with the correct format
- set EggMail::msg {}
- set EggMail::recipientList {}
- set EggMail::ccList {}
- set EggMail::subject {}
- set EggMail::body {}
- # Function to set the message
- proc EggMail::setMessage {recipientList ccList subject body} {
- # Set the recipient list
- set EggMail::recipientList $recipientList
- # Set the CC list
- set EggMail::ccList $ccList
- # Set the subject
- set EggMail::subject $subject
- # Set the body
- set EggMail::body $body
- # Build the message
- EggMail::buildMessage
- }
- # Function to build the message
- proc EggMail::buildMessage {} {
- # Set the From header
- set EggMail::msg "From: someone"
- # Set the To header
- set recipientList [join $EggMail::recipientList ,]
- if {$recipientList ne ""} {
- append EggMail::msg "\nTo: $recipientList"
- }
- # Set the CC header
- set ccList [join $EggMail::ccList ,]
- if {$ccList ne ""} {
- append EggMail::msg "\nCc: $ccList"
- }
- # Set the Subject header
- set EggMail::msg "\nSubject: $EggMail::subject"
- # Set the Body
- set EggMail::msg "\n\n$EggMail::body"
- # Send the message
- EggMail::sendMail
- }
- # Function to send the message
- proc EggMail::sendMail {} {
- # Use putlog instead of puts
- putlog "Sending email with the following message:\n$EggMail::msg"
- # Use try for exception handling
- try {
- # Use exec to call sendmail with the message as input
- set cmd "/usr/lib/sendmail -oi -t << $EggMail::msg"
- exec $cmd
- } on error {errMsg} {
- # Handle the error
- putlog "Error sending email: $errMsg"
- }
- }
- # Factory method to create an instance of the script
- proc EggMail::create {} {
- return [namespace inscope EggMail {list setMessage}]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement