OVH Community, your new community space.

syntaxe entêtes mail php avec spf et DKIM ?


BBR
04/02/2014, 12h57
Grâce à l'aide de buddy, je suis passée d'une note minable à 7.9 (et 9 dès que les DNS seront pris en compte), voilà tout ce que j'ai fait :
Code:
nano /etc/mailname
Code:
nano /etc/hostname
mettre le nom de domaine au lieu de celui ns113...eu
Code:

/etc/init.d/hostname.sh restart
chercher le fichier main.cf
Code:
updatedb && locate main.cf

sur Debian il est ici :
éditer
Code:
nano /etc/postfix/main.cf
mettre le nom de domaine sur les lignes (séparées par un espace)
Code:
myhostname = ndd.tld
mydestination = ndd.tld
mynetworks = 127.0.0.0/8 ip.serveur ip_fo 
smtpd_banner = ndd.tld
puis
Code:
postfix reload
si le domaine est sur une IP FO (mon cas) :
forcer l'ip fo pour le serveur mail :
Code:
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 25 -j SNAT --to-source ip.fail.over
vérifier que ipv4 du serveur soit bien dans le spf du domaine

régénérer la signature DKIM si besoin

BBR
01/02/2014, 23h58
oui Debian avec postfix, je me penche sérieusement sur tes pistes dès demain car là plus en état de réfléchir efficacement, la journée a été longue.
Merci à tous

nowwhat
01/02/2014, 23h48
Citation Envoyé par BBR
DKIM (et spf) est installé et signe bien les mails sortants mais je ne sais pas comment intégrer cette signature dans un script php d'envoi de formulaire
Si tes mails sortent sont signés DKIM par ton serveur mail, pourquoi chercher à faire ceci aussi dans PHP (bash, perl, autre script ...) ?

Cherche plutôt pourquoi les mails venant de PHP, injecté dans ton serveur mail, ne sont pas signés

T'as postfix comme serveur mail ?
Si c'est postfix, il va passer toutes les mails, sortent et entrent, par le filtre DKIM - le concept est nommé MILTER.
Les mails sortent, il ajoute le bon signature au mail (même suivant le bon nom de domaine, si t'en a plusieurs).
Les mails entrent, il cherche à vérifier le signature auprès la zone DNS de l'émetteur.

Ma question est: ton formulaire, il fait passer ton mail par ton serveur mail - il utilise mail() de PHP ? Quand il fait passer ce mail, le nom de domaine est reconnu par le filtre DKIM pour qu'il le signe ? va voir les log /var/log/mail.log au moment de l'envoi.
J'avais moi même un soucis concernant les mails envoyé par PHP, car le domaine été "www.mon-domaine.tld", et mon KDIM signe que les mails venant de "mon-domaine.tld".
J'ai du ajouter ceci dans mon /etc/postfix/main.cf:
masquerade_domains = mon-domaine1.tld mon-domaine2.tldmon-domaine3.tld mon-domaine4.tld mon-domaine5.tld
pour transformer ce genre d’émetteur
root@www.mon-domaine.tld
en
root@mon-domaine.tld
et comme ça DKIM a reconnu le domaine et ajoute la signature.

A mon avis, il ne faut pas chercher à travailler avec DKIM au niveau de PHP sauf si tu fabrique un outil de vérification de DKIM.

BBR
01/02/2014, 23h29
génial donc tout va bien, problème résolu

buddy
01/02/2014, 23h22
Citation Envoyé par BBR
DKIM (et spf) est installé et signe bien les mails sortants mais je ne sais pas comment intégrer cette signature dans un script php d'envoi de formulaire
d'après starouille ce ne serait pas possible ? ça expliquerait que je n'aie rien trouvé ^^
bon je verrai ça demain, ok buddy (d'ailleurs j'ai complètement oublié de te répondre l'autre jour )
Pour le dkim c'est normalement le serveur mail qui signe les mails sortants.
Pour le SPF c'est le domaine receveur qui effectue un check au niveau des DNS donc rien à configurer sur ton serveur ( si ce n'est l'enregistrement spf / txt sur tes DNS )

BBR
01/02/2014, 22h49
DKIM (et spf) est installé et signe bien les mails sortants mais je ne sais pas comment intégrer cette signature dans un script php d'envoi de formulaire
d'après starouille ce ne serait pas possible ? ça expliquerait que je n'aie rien trouvé ^^
bon je verrai ça demain, ok buddy (d'ailleurs j'ai complètement oublié de te répondre l'autre jour )

buddy
01/02/2014, 22h18
Bonjour,

le spf ne se gèrent uniquement qu'au niveau DNS / domaine.

http://www.mail-tester.com/spf/

si un soucis send me an email

Kitty
01/02/2014, 21h35
Peut-être essayer:

php-mail-domain-signer: http://code.google.com/p/php-mail-domain-signer/

Example:
Code:
// Create mailDomainSigner Object
include_once './lib/class.mailDomainSigner.php';

$mds = &new mailDomainSigner($domain_priv,$domain_d,$domain_s);
$new_data = $mds->sign(
                $mail_data,
                "Message-ID:Subject:From:Content-Type:MIME-Version:Content-Transfer-Encoding:Received:To:Date",
                true,true,false);
php-dkim (il est vieux) : http://php-dkim.sourceforge.net/

Je n'ai pas essayé utilisés, mais ils pourraient travailler.

starouille
01/02/2014, 21h28
le DKIM n'est pas géré à ce niveau.

perso c'est le serveur de mail qui gère ça, (tous mes serveurs peuvent envoyer des mails, via ssmtp, qui se co en smtp à mon serveur mail), ce ne sont pas mes scripts d'envoi php, perl ou bash qui gère ça (ils n'ont pas l'info sur les clé utilisées etc..)

BBR
01/02/2014, 14h54
Bonjour,
J'ai écumé le net en compagnie de Google mais rien à faire pour trouver la réponse, jusqu'ici mes formulaires php envoyés avec mail() fonctionnaient très bien et d'ailleurs continuent de fonctionner mais le spf et dkim n'apparaissent pas (ils sont présents sur la zone DNS), alors je me dis qu'un jour ou l'autre ça ne passera plus vers gmail, hotmail et compagnie.
Ma question est donc : comment rédiger les entêtes en php pour qu'ils apparaissent dans le emails envoyés par php ?
Merci