Salut,

Config : Fedora 22 server

J'ai remis en service un serveur que j'avais configuré il y a quelques temps.
Sur ce serveur, un script envoie des mails via la fonction php mail. Et ce script fonctionne parfaitement bien.
Le mystère, c'est que si je tape ...
systemctl status sendmail
J'ai la réponse :
sendamail.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
A l'époque, j'avais configuré ssmtp. En effet ...
# alternatives --config mta

Il existe 2 programmes qui fournissent « mta ».

  Sélection    Commande
-----------------------------------------------
*  1           /usr/sbin/sendmail.sendmail
 + 2           /usr/sbin/sendmail.ssmtp
Mais
# systemctl status ssmtp
● ssmtp.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
A la tentative ...
# systemctl start sendmail
J'ai ...
Job for sendmail.service failed. See "systemctl status sendmail.service" and "journalctl -xe" for details.
Et donc ...
# sendmail -s "sujet" toto@truc.fr
ne marche pas !

Mais je répète que tous les mails envoyés à partir de mon script PHP fonctionnent parfaitement bien !
Question : comment savoir quel service est utilisé pour envoyer mes mails à partir de mon script php ?

Merci
et si on le voyait ce script ? Peut-être tu utilises le smtp de ton FAI ?
Non, non, le script n'utilise pas le smtp du FAI. Voici la partie du script qui envoie le mail :
    $email_expediteur=  $MailAdmin;
    $email_retour=      $MailAdmin;
    $expediteur=        'ADVIZ';

    $headers = "From: ".$expediteur." <".$email_expediteur.">\n";
	$headers .= "Mime-Version: 1.0\n";
	$headers .= "Content-type: text/html; charset= utf-8\n";
	if($uiMod == '')
	{
		$sujet="Confirmez votre annonce sur ADVIZ";
		$message = "Vous avez déposé une annonce sur notre site <b>ADVIZ</b>.<br />";
		$message .="Afin de confirmer votre adresse email, nous vous remercions de bien vouloir cliquer sur le lien ci-dessous.<br />";
		$message .=$lien;
		$message .="<br />Si le lien est inactif, copiez-le dans la barre d'adresse de votre navigateur.<br /><br />";
		$message .="Votre texte et vos éventuelles photos seront examinés par notre équipe pour validation et vous serez prévenu par mail une fois l'annonce approuvée.";
		$message .="<br />Le mot de passe que vous avez renseigné vous permettra de modifier ou supprimer votre annonce. Conservez-le avec soin.<br />";
	} else
	{
		$sujet="Modification de votre annonce sur ADVIZ";
		$message = "Vous avez modifié votre annonce :<br />'<b>".$titre."</b>'<br />";
		$message .="Vos modifications seront examinées par notre équipe pour validation et vous serez prévenu par mail lorsque ces modifications seront en ligne.<br />";		
	}
	$message .="Nous restons à votre disposition pour tout renseignement complémentaire.<br />";
	$message .="<br />Cordialement,<br />Toute l'équipe de Adviz<br/><br />";
	$message .="<small>Ceci est un mail automatique. Merci de ne pas y répondre.</small>";
		
    if (@mail($mail,$sujet,$message,$headers))  // <<<<<< Ici le mail est envoyé et marche très bien !!
	{ ... 
Mon FAI est Free et jamais je n'en fais mention dans mon code PHP.
> # systemctl start sendmail
...
> Job for sendmail.service failed. See "systemctl status sendmail.service"

Et si on commençais par aller voir ce qui empêche sendmail de se lancer?
pingou wrote:Et si on commençais par aller voir ce qui empêche sendmail de se lancer?
# systemctl start sendmail
Job for sendmail.service failed. See "systemctl status sendmail.service" and "journalctl -xe" for details.
# journalctl -xe
-- Subject: L'unité (unit) sendmail.service a commencé à démarrer
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- L'unité (unit) sendmail.service a commencé à démarrer.
mars 16 15:24:35 calypsum.com make[2287]: /etc/mail/make: ligne 22: makemap : commande introuvable
mars 16 15:24:35 calypsum.com make[2287]: /etc/mail/make: ligne 22: makemap : commande introuvable
mars 16 15:24:35 calypsum.com make[2287]: /etc/mail/make: ligne 22: makemap : commande introuvable
mars 16 15:24:35 calypsum.com make[2287]: /etc/mail/make: ligne 22: makemap : commande introuvable
mars 16 15:24:35 calypsum.com sendmail[2303]: -bd is not supported by sSMTP
mars 16 15:24:35 calypsum.com systemd[1]: PID file /run/sendmail.pid not readable (yet?) after start.
mars 16 15:24:35 calypsum.com polkitd[760]: Unregistered Authentication Agent for unix-process:2282:2606489 (system
mars 16 15:24:35 calypsum.com systemd[1]: Failed to start Sendmail Mail Transport Agent.
-- Subject: L'unité (unit) sendmail.service a échoué
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- L'unité (unit) sendmail.service a échoué, avec le résultat failed.
mars 16 15:24:35 calypsum.com systemd[1]: Dependency failed for Sendmail Mail Transport Client.
-- Subject: L'unité (unit) sm-client.service a échoué
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- L'unité (unit) sm-client.service a échoué, avec le résultat dependency.
mars 16 15:24:35 calypsum.com systemd[1]: Job sm-client.service/start failed with result 'dependency'.
mars 16 15:24:35 calypsum.com systemd[1]: Unit sendmail.service entered failed state.
mars 16 15:24:35 calypsum.com systemd[1]: sendmail.service failed.
mars 16 15:24:35 calypsum.com audit[1]: <audit-1130> pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sendmail
mars 16 15:24:44 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:24:50 calypsum.com sshd[2305]: Did not receive identification string from 46.16.37.138
mars 16 15:24:50 calypsum.com audit[2305]: <audit-2404> pid=2305 uid=0 auid=4294967295 ses=4294967295 msg='op=destr
mars 16 15:24:50 calypsum.com audit[2305]: <audit-2404> pid=2305 uid=0 auid=4294967295 ses=4294967295 msg='op=destr
mars 16 15:24:50 calypsum.com audit[2305]: <audit-2404> pid=2305 uid=0 auid=4294967295 ses=4294967295 msg='op=destr
mars 16 15:24:59 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:25:17 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:25:36 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:25:46 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:26:07 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:26:23 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:26:39 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:26:53 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:27:12 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:27:19 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
mars 16 15:27:29 calypsum.com dhclient[820]: DHCPREQUEST on enp0s25 to 192.168.1.254 port 67 (xid=0x6abb9512)
Ca te parle ?
Alors je te suggère de te faire envoyer un mail à toi-même puis ensuite regarder en détail l'en-tête de ce mail. Tu y verras tout le cheminement ainsi que le serveur smtp utilisé.

Notamment les "received from"
nouvo09 wrote:Alors je te suggère de te faire envoyer un mail à toi-même puis ensuite regarder en détail l'en-tête de ce mail.
Pour être complet, je précise que j'utilise un relais smtp. Le serveur de messagerie est chez un hébergeur (kundenserver.de).
Voici l'entete du mail :
Delivered-To: xxxxxx@gmail.com
Received: by 10.202.171.19 with SMTP id u19csp948017oie;
        Fri, 11 Mar 2016 03:45:31 -0800 (PST)
X-Received: by 10.28.126.131 with SMTP id z125mr2526270wmc.77.1457696731332;
        Fri, 11 Mar 2016 03:45:31 -0800 (PST)
Return-Path: <admin@calypsum.com>
Received: from mout.kundenserver.de (mout.kundenserver.de. [212.227.17.24])
        by mx.google.com with ESMTPS id 67si2275103wmd.22.2016.03.11.03.45.30
        for <xxxxxx@gmail.com>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Fri, 11 Mar 2016 03:45:31 -0800 (PST)
Received-SPF: neutral (google.com: 212.227.17.24 is neither permitted nor denied by best guess record for domain of admin@calypsum.com) client-ip=212.227.17.24;
Authentication-Results: mx.google.com;
       spf=neutral (google.com: 212.227.17.24 is neither permitted nor denied by best guess record for domain of admin@calypsum.com) smtp.mailfrom=admin@calypsum.com
Received: from calypsum ([78.213.192.148]) by mrelayeu.kundenserver.de
 (mreue101) with ESMTPSA (Nemesis) id 0Lo0CW-1aBcOH2HtI-00fwxo for
 <xxxxxx@gmail.com>; Fri, 11 Mar 2016 12:45:30 +0100
Received: by calypsum (sSMTP sendmail emulation); Fri, 11 Mar 2016 12:45:28 +0100
Date: Fri, 11 Mar 2016 12:45:28 +0100
Si j'expose ce problème, c'est que j'ai changé la machine sur laquelle tourne mon serveur, j'y ai transféré mon site mais les mails ne fonctionnent plus ! Tout marche nickel sur l'ancienne machine mais les mails ne marchent plus sur la nouvelle !
J'ai même carrément recopié le contenu du répertoire /etc de l'un sur l'autre : rien à faire.
Mystère !!

Edit : A l'époque, j'utilisais sSMTP :
# sendmail -V
sSMTP 2.64 (Not sendmail at all)
Bon ça n'avance pas en fait mais je relève ça dans ton journal
/etc/mail/make: ligne 22: makemap : commande introuvable
Or
 $ locate makemap
/usr/bin/makemap
/usr/sbin/makemap
/usr/share/man/man8/makemap.8.gz
et
yum provides */makemap
Modules complémentaires chargés : langpacks, presto, refresh-packagekit

sendmail-8.15.2-2.fc22.x86_64.rpm: A widely used Mail Transport Agent (MTA)
Dépôt         : updates
Correspondance depuis :
Nom de fichier      : /usr/bin/makemap
Nom de fichier      : /usr/sbin/makemap
Par conséquent sendmail n'a pas pu être bien configuré ni installé. Je te suggère d'exécuter un

yum (ou dnf) reinstall sendmail
nouvo09 wrote:Par conséquent sendmail n'a pas pu être bien configuré ni installé. Je te suggère d'exécuter un
yum (ou dnf) reinstall sendmail
Merci Nouvo09 de t'occuper un peu de mon cas.

Mon Fedora Server est hébergé à la maison derrière une Freebox. Là-dessus tourne un serveur SSH (pour contourner le firewall de mon taf) et, entre autres, un serveur web.
Tout ce qui vient d'être posté provient de mon ancienne machine, on est d'accord. Or tout marche nickel sur cette bécane, c'est ça qui me tue ! (accès à mon site depuis n'importe quelle ordi sur la planète)

Ce que je n'arrive pas à comprendre, c'est que ...
echo 'Ceci est un test'| mail -s test_email xxxxx@gmail.com
... envoie bien le mail que je reçois sans problème dans mon client de messagerie (thunderbird)

Comment l'envoi de mail peut-il fonctionner sans que le service sendmail soit actif ?

Merci encore de ton attention. Je vais investiguer ... Si je trouve le coupable, je le dénonce à la communauté.
😉
Mais si on s'occupait plutôt de ce qui ne fonctionne pas que de ce qui fonctionne ?

cf post #8
Bonjour,

http://artisan.karma-lab.net/utiliser-ssmtp-comme-remplacement-sendmail

ssmtp est une émulation de sendmail.
D'après cette page, ssmtp n'a pas à être lancé en daemon pour que mail php fonctionne.
mail php, ou même ssmtp, va faire appel à la commande directement.

Et d'après le header de l'email, c'est bien ssmtp on dirait:
Received: by calypsum (sSMTP sendmail emulation); Fri, 11 Mar 2016 12:45:28 +0100
A secure, effective and simple way of getting mail off a system to your mail
: hub. It contains no suid-binaries or other dangerous things - no mail spool
: to poke around in, and no daemons running in the background. Mail is simply
: forwarded to the configured mailhost. Extremely easy configuration.

:
: WARNING: the above is all it does; it does not receive mail, expand aliases
: or manage a queue. That belongs on a mail hub with a system administrator.
Donc, bref, tant que la commande est là, et qu'il y a une configuration pour ssmtp,, tout va ^^
4 jours plus tard
nouvo09 wrote:Mais si on s'occupait plutôt de ce qui ne fonctionne pas que de ce qui fonctionne ?

cf post #8
Ce qui me chagrine, c'est que sur ma nouvelle machine qui est le reflet parfait de l'ancienne, l'envoi de mail ne fonctionne pas !
ssmtp est installé, et le fichier de config est exactement le même.
Sur la nouvelle machine ...
# sendmail -V
sSMTP 2.64 (Not sendmail at all)
Le mail semble partir sans erreur mais n'arrive jamais :
[root@calypsum ~]# ssmtp -v xxxx@gmail.com
jhjh

[<-] 220 kundenserver.de (mreue101) Nemesis ESMTP Service ready
[->] EHLO calypsum
[<-] 250 STARTTLS
[->] STARTTLS
[<-] 220 OK
g[->] EHLO calypsum
[<-] 250 AUTH LOGIN PLAIN
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] d2VibWFzdGVyQGNhbHlwc3VtLmNvbQ==
[<-] 334 UGFzc3dvcmQ6
[<-] 235 Authentication succeeded
[->] MAIL FROM:<root@calypsum.com>

[<-] 250 Requested mail action okay, completed
[->] RCPT TO:<xxxx@gmail.com>
[<-] 250 OK
[->] DATA

[<-] 354 Start mail input; end with <CRLF>.<CRLF>
[->] Received: by calypsum (sSMTP sendmail emulation); Tue, 22 Mar 2016 09:22:12 +0100
[->] From: "root" <root@calypsum.com>
[->] Date: Tue, 22 Mar 2016 09:22:12 +0100
[->] jhjh
[->]
[->] gg
[->]
[<-] 250 Requested mail action okay, completed: id=0MP0FD-1afHZP0Hmp-006KOU
[->] QUIT
[<-] 221 kundenserver.de Service closing transmission channel
Je voulais savoir pourquoi tout marche sur l'un et pas sur l'autre. En comparant les deux configs, je ne trouve aucune différence ! En essayant de comprendre pourquoi la première fonctionne, je trouverai peut-être pourquoi la seconde ne marche pas.
Si ton extrême bonté pouvait aller jusqu'à lire le post #8 peut-être avancerait-on ?
nouvo09 wrote:Si ton extrême bonté pouvait aller jusqu'à lire le post #8 peut-être avancerait-on ?
Cher ami, "L'ironie est un génie qui dispense de coeur et de bon sens" (J. Barbey d'Aurevilly)


Ce post me suggère de réinstaller sendmail. Ce n'est pas utile car sur mon ancien serveur, j'avais fait un "dnf remove sendmail" pour me débarrasser de ce truc. ssmtp était suffisant pour relayer mes mails et marchait à merveille.
Comme on tourne en rond, j'ai décidé de changer de braquet : j'ai tout viré, installé et configuré postfix. Tout fonctionne à nouveau. Le mystère lié à ssmtp sur ma nouvelle machine restera une énigme.


Merci à tous
Ce n'est pas utile car sur mon ancien serveur, j'avais fait un "dnf remove sendmail" pour me débarrasser de ce truc.
Possible mais peut-être avais tu désinstallé sendmail apres la compilation par makemap et donc après la complétion de la configuration.