~bzg/emacsfr

publipostage

Details
Message ID
<0c3550b8-90e5-464d-b568-3321ca0237bd@gnu.re>
DKIM signature
pass
Download raw message
Hello à tous,

je partage avec vous un bout de code pour faire du publipostage.

Attention ce code utilise gnus et org-msg

Si vous avez d'autres solutions n'hésitez pas à partager ;-).

,----
| * Recipients
| #+NAME: email-recipients
| | Name     | Email               |
| |----------+---------------------|
| | Karine   | k.soulet@gmail.com  |
| | Mireille | m.tonloto@gmail.com |
|
|
| * Template
| #+NAME: email-template
| #+BEGIN_SRC org
|   Dear {{name}},
|
|   We are pleased to inform you about our upcoming event.
|
|   Best regards,
|   The Team
| #+END_SRC
|
|
|
| * Code to Send Emails
| #+NAME: send-emails
| #+BEGIN_SRC emacs-lisp :var template=email-template :var 
recipients=email-recipients :results silent
|   (defun org-mail-merge-send (template recipients)
|     "Envoie des courriels personnalisés à partir d'un TEMPLATE et 
d'une liste de RECIPIENTS via `gnus-summary-news-other-window`, avec 
confirmation avant envoi."
|     (dolist (recipient recipients)
|       (let* ((name (nth 0 recipient))
|              (email (nth 1 recipient))
|              (subject "Upcoming Event")
|              (personalized-content (replace-regexp-in-string 
"{{name}}" name template)))
|         (gnus-summary-mail-other-window)
|         (message-goto-to)
|         (insert email)
|         (message-goto-subject)
|         (insert subject)
|         (org-msg-goto-body)
|         (insert personalized-content)
|         (if (y-or-n-p (format "Envoyer l'email à %s ?" email))
|             (message-send-and-exit)
|           (message-kill-buffer)))))
|
|   ;; Appel de la fonction avec les variables d'Org-Babel
|   (org-mail-merge-send template recipients)
| #+END_SRC
`----



Cordialement.




-- 
((name . (or Matt DarkBuffalo))
  (site . gnu.re))
Reply to thread Export thread (mbox)