web-dev-qa-db-fra.com

Comment configurer un vrai nom de domaine pour l'adresse de l'expéditeur

J'ai essayé d'envoyer un e-mail en utilisant php mail() fonction, mais il a échoué en quelque sorte, se plaignant qu'un nom de domaine est nécessaire. Ce qui suit est observée dans le maillog:

sendmail 4984 r25984: from = Apache, taille = 273, class = 0, nrcpts = 1, msgid = <[email protected]>, = relais Apache @ localhost
Sendmail 4985 r25985: = ruleset check_mail, arg1 =, relais = mydomain.com [127.0.0.1], rejeter = 553 5.5.4 ... nom de domaine requis pour l'adresse de l'expéditeur
Sendmail 4984 r25984: [email protected], ctladdr = Apache (48/48), retard = 00: 00: 01, xdelay = 00: 00: 00, mailer = relais, pri = 30273, relais = [127.0.0.1] [127.0.0.1], dsn = 5.6.0, stat = erreur de format de données
Sendmail 4984 r25984: r25984: DSN: erreur de format de données

cron est en mesure d'envoyer un courriel à [email protected] chaque fois qu'il ya un problème avec logrotate. Je ne sais pas pourquoi php est incapable de le faire. J'ai essayé d'apporter des modifications à la configuration par défaut dans `sendmail.mc ce qui suit:

MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(mycom)dnl

Mais, il ne semble pas avoir d'effet. L'en-tête de l'adresse en fonction php mail a déjà été défini. J'ai également veillé à ce que SELinux httpd_can_sendmail est autorisé. Quoi d'autre que je dois faire pour obtenir le courrier livré?

10

Je pense que je viens de résoudre ça. J'ai les suivants dans / etc/hosts:

127.0.0.1 www.mydomain.com test.mydomain.com
127.0.0.1 cdn.mycdn.com
127.0.0.1 localhost.localdomain localhost myserver.com

Ce dont j'ai besoin, c'est de placer myserver.com devant la ligne avec localhost.localdomain de sorte que sendmail pensera qu'il utilise un domaine réel pour envoyer le courrier électronique.

10

Vous devez configurer, dans vos scripts, les en-têtes de votre email pour avoir From: [email protected].

2
fboaventura

Dans mon cas, sur Ubuntu 16.04 sur une instance AWS, ce qui était nécessaire était d'ajouter à /etc/mail/sendmail.mc:

define(`confDOMAIN_NAME', `mydomainname.com')dnl

sur une ligne avant le MAILER_DEFINITIONS Ligne vers la fin du fichier et ajoutez la même ligne à la fin de /etc/mail/submit.mc. Puis tapez Sudo su Pour les autorisations root et compiler pour configurer:

m4 sendmail.mc > sendmail.cf
m4 submit.mc > submit.cf

... alors exit sudo. Finalement, Sudo service sendmail restart Pour redémarrer Sendmail et à partir de celui-ci, des courriels apparaissaient comme envoyés par rapport au nom de domaine. Aucune des autres commandes de fonctionnalité ou de mascarade n'était requise, ni une entrée dans le /etc/hosts déposer.

1
Theo d'Or