Procédure pour envoyer une copie d'écran web par mail
Publié : 06 oct 2017, 13:02
Dans l'idée d'envoyer, par exemple tous les jeudis, un mail reprenant une page web, j'ai fait les procédures suivantes :
Installé de quoi convertir les pages en pdf :
qui permet de :
Pour envoyer les mails deux outils également :
La touche [Tab] pour sélectionner : "pas de configuration"
Puis
Puis J'ai édité les deux fichiers de config de ssmtp :
Mis dedans :
(465 peut-être remplacé par 587 si Gmail ou autre truc bizarre - UseTLS=YES peut être remplacé par UseSSLTLS=YES si besoin)
Puis
Mis dedans :
(465 peut-être remplacé par 587 si on veut émettre de Gmail ou autre truc bizarre)
Puis créé un script (mailjeudi.sh):
Jusque là ça fonctionne presque. (ça crée le pdf et envoie le mail chez moi, mais au lieu d'avoir monadresseemetteur@mondomaine.truc mais... ça arrive avec comme émetteur monlogin@mondomaine.truc)
Maintenant, Pour l'automatiser, plutôt que cron, j'ai voulu utiliser systemd timer :
J'ai créé un /etc/systemd/system/jeudi.timer (pas réglé sur jeudi, mais sur 10 secondes pour tester) :
(le timer sera bien sûr à amender pour l'envoyer chaque jeudi)
Et un /etc/systemd/system/jeudi.service :
Puis bien sûr :
Mais là, ça plante ! ni wkhtmltopdf, ni mailx ne passent !
Une vérif avec :
me le confirment...
Est-ce une coquetterie de systemd, cron ferait il mieux , comment paramétrer cron dans ce cas ?
Et... comment avoir comme sender monadresse et pas monlogin ?
Installé de quoi convertir les pages en pdf :
sudo pacman -S xorg-server-xvfb
sudo pacman -S wkhtmltopdf
qui permet de :
xvfb-run wkhtmltopdf l'url/que/je/veux ~/Documents/lenomdemon.pdf
Pour envoyer les mails deux outils également :
sudo pacman -S mailutils
La touche [Tab] pour sélectionner : "pas de configuration"
Puis
sudo pacman -S ssmtp
Puis J'ai édité les deux fichiers de config de ssmtp :
gksudo gedit /etc/ssmtp/ssmtp.conf
Mis dedans :
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=monadresseemetteur@mondomaine.truc
AuthUser=monadresseemetteur@mondomaine.truc
AuthPass=monmotdepasse
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=monserveursmtp:465
UseTLS=YES
# Where will the mail seem to come from?
# rewriteDomain=y
# The full hostname
# hostname=localhost.localdomain
rewriteDomain=mondomaine
hostname=prefixedomaine
FromLineOverride=YES
(465 peut-être remplacé par 587 si Gmail ou autre truc bizarre - UseTLS=YES peut être remplacé par UseSSLTLS=YES si besoin)
Puis
gksudo gedit /etc/ssmtp/revaliases
Mis dedans :
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:monadresseemetteur@mondomaine.truc:monserveursmtp:465
user:monadresseemetteur@mondomaine.truc:monserveursmtp:465
(465 peut-être remplacé par 587 si on veut émettre de Gmail ou autre truc bizarre)
Puis créé un script (mailjeudi.sh):
#!/bin/bash
xvfb-run wkhtmltopdf l'url/que/je/veux ~/Documents/lenomdemon.pdf
echo -e "Voilà le message tant attendu\nBien à toi\nAlfred" | mailx -s "Le mail du jeudi" -a ~/Documents/lenomdemon.pdf adressedemondestinataire@sondomaine.com
Jusque là ça fonctionne presque. (ça crée le pdf et envoie le mail chez moi, mais au lieu d'avoir monadresseemetteur@mondomaine.truc mais... ça arrive avec comme émetteur monlogin@mondomaine.truc)
Maintenant, Pour l'automatiser, plutôt que cron, j'ai voulu utiliser systemd timer :
J'ai créé un /etc/systemd/system/jeudi.timer (pas réglé sur jeudi, mais sur 10 secondes pour tester) :
[Unit]
Description= test jeudi
[Timer]
OnUnitActiveSec=10s
OnBootSec=10s
[Install]
WantedBy=timers.target
(le timer sera bien sûr à amender pour l'envoyer chaque jeudi)
Et un /etc/systemd/system/jeudi.service :
[Unit]
Description=test jeudi
[Service]
Type=oneshot
ExecStart=/home/monlogin/Desktop/mailjeudi.sh
[Install]
WantedBy=weekly-backup.target
Puis bien sûr :
systemctl start jeudi.timer
Mais là, ça plante ! ni wkhtmltopdf, ni mailx ne passent !
Une vérif avec :
journalctl -xe
me le confirment...
Est-ce une coquetterie de systemd, cron ferait il mieux , comment paramétrer cron dans ce cas ?
Et... comment avoir comme sender monadresse et pas monlogin ?