Une place pour une véritable innovation. Partagez vos propres utilitaires créés avec la communauté Manjaro.
Questions et discussions sur la programmation et le codage.
#1Messageil y a 6 ansDans 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 :
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 :
La touche [Tab] pour sélectionner : "pas de configuration"
Puis
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 :
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 ? Xubuntu devel - Manjaro unstable - OpenSUSE tumbleweed (GeckoLinux) -Debian Testing
Trucs, astuces, tutos et analyses de l'open source dans l'almanet doLys
#2Messageil y a 6 anssalut,
tu ne nous remontes pas les erreurs mais je suppose que c'est ton service
1) dans ton service, il faut supprimer ton target ! (un copier/coller d'autre chose ?)
ensuite tu dois tester uniquement ton service systemctl start jeudi
Attention, la (seule) différence avec la console c'est qu'avec un service l'user est root, a voir si smtp fonctionne bien
dans ssmtp.conf j'ai:
hostname=moi@monserveur.fr
Manjaro STABLE - Linux lts - fish - Kde5 - icore N100 - 16Go RAM - ssd - efi
#mount /dev/archlinux /mnt/manjaro
#3Messageil y a 6 ansOups :
~]$ systemctl start jeudi
Job for jeudi.service failed because the control process exited with error code.
See "systemctl status jeudi.service" and "journalctl -xe" for details.
~]$ systemctl status jeudi.service
lines 1--1...skipping...
● jeudi.service - test jeudi
Loaded: loaded (/etc/systemd/system/jeudi.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2017-10-06 14:29:09 CEST; 3min 13s ago
Process: 5950 ExecStart=/home/asatysco2/Desktop/mailjeudi.sh (code=exited, status=4)
Main PID: 5950 (code=exited, status=4)
oct. 06 14:29:08 ordi2 wkhtmltopdf[5971]: QPainter::drawGlyphRun: Painter not active
oct. 06 14:29:08 ordi2 wkhtmltopdf[5971]: QPainter::setPen: Painter not active
oct. 06 14:29:08 ordi2 mailjeudi.sh[5950]: /usr/sbin/xvfb-run: line 170: 5971 Segmentation fault (core dumped) DISPLAY=:$SERVERNUM XAUTHORITY=$A
oct. 06 14:29:08 ordi2 mailjeudi.sh[5950]: mail: Failed to create encoded message: Illegal byte sequence
oct. 06 14:29:08 ordi2 mailjeudi.sh[5950]: /root/dead.letter 5/87
oct. 06 14:29:08 ordi2 mailjeudi.sh[5950]: mail: ... message not sent
oct. 06 14:29:08 ordi2 systemd[1]: jeudi.service: Main process exited, code=exited, status=4/NOPERMISSION
oct. 06 14:29:09 ordi2 systemd[1]: Failed to start test jeudi.
oct. 06 14:29:09 ordi2 systemd[1]: jeudi.service: Unit entered failed state.
oct. 06 14:29:09 ordi2 systemd[1]: jeudi.service: Failed with result 'exit-code'.
~
~
~
~
~
~
~
~
~
~
~
~]$ journalctl -xe
Stack trace of thread 5987:
#0 0x00007f0d20e0f38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f0d2562748d __gthread_cond_wait (libstdc++.so.6)
#2 0x00007f0d22ec38d9 _ZN3WTF10ParkingLot17parkConditionallyEPKvSt8functionIFbvEES3_IFvvEENSt6chrono10
#3 0x00007f0d22ec25e0 n/a (libQt5WebKit.so.5)
#4 0x00007f0d22ec6898 n/a (libQt5WebKit.so.5)
#5 0x00007f0d22ef8eea n/a (libQt5WebKit.so.5)
#6 0x00007f0d20e0908a start_thread (libpthread.so.0)
#7 0x00007f0d2509c1bf __clone (libc.so.6)
Stack trace of thread 5983:
#0 0x00007f0d20e0f38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f0d2562748d __gthread_cond_wait (libstdc++.so.6)
#2 0x00007f0d22ec38d9 _ZN3WTF10ParkingLot17parkConditionallyEPKvSt8functionIFbvEES3_IFvvEENSt6chrono10
#3 0x00007f0d22842207 n/a (libQt5WebKit.so.5)
#4 0x00007f0d22ec6898 n/a (libQt5WebKit.so.5)
#5 0x00007f0d22ef8eea n/a (libQt5WebKit.so.5)
#6 0x00007f0d20e0908a start_thread (libpthread.so.0)
#7 0x00007f0d2509c1bf __clone (libc.so.6)
Stack trace of thread 5986:
#0 0x00007f0d20e0f38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1 0x00007f0d2562748d __gthread_cond_wait (libstdc++.so.6)
#2 0x00007f0d22ec38d9 _ZN3WTF10ParkingLot17parkConditionallyEPKvSt8functionIFbvEES3_IFvvEENSt6chrono10
#3 0x00007f0d22ec25e0 n/a (libQt5WebKit.so.5)
#4 0x00007f0d22ec6898 n/a (libQt5WebKit.so.5)
#5 0x00007f0d22ef8eea n/a (libQt5WebKit.so.5)
#6 0x00007f0d20e0908a start_thread (libpthread.so.0)
#7 0x00007f0d2509c1bf __clone (libc.so.6)
-- Subject: Le processus 5971 (wkhtmltopdf) a généré un fichier « core »
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: man:core(5)
--
-- Le processus 5971 (wkhtmltopdf) a planté et généré un fichier « core ».
--
-- Cela indique généralement une erreur de programmation dans le programme
-- incriminé, et cela devrait être notifié à son concepteur comme un défaut (bug).
Sinon, le smtp fonctionne : à chaque fois que je lance le script à la main, je reçois le mail. Xubuntu devel - Manjaro unstable - OpenSUSE tumbleweed (GeckoLinux) -Debian Testing
Trucs, astuces, tutos et analyses de l'open source dans l'almanet doLys
#4Messageil y a 6 ansok c'est donc ton programme wkhtmltopdf
qui plante
je ne connais pas ce programme, a vue de nez, lui passer dbus voir qu'il faut lui indiquer un DISPLAY ? Manjaro STABLE - Linux lts - fish - Kde5 - icore N100 - 16Go RAM - ssd - efi
#mount /dev/archlinux /mnt/manjaro
#5Messageil y a 6 ansMerci !
Bon, je ne connais pas du tout dbus, aussi !
Sinon, c'est à cause de ce style de doute que j'ai ajouté le xvfb-run car le script, lui, fonctionne sans que je ne voie la moindre sollicitation d'un moniteur avec et sans xvbf.
C'est systemd qui semble ne pas aimer. Xubuntu devel - Manjaro unstable - OpenSUSE tumbleweed (GeckoLinux) -Debian Testing
Trucs, astuces, tutos et analyses de l'open source dans l'almanet doLys