Como configurar um nome de domínio real para o endereço do remetente

9

Eu tentei enviar um e-mail usando a função php mail() , mas ele falhou de alguma forma, reclamando que um nome de domínio real é necessário. O seguinte é observado no maillog:

sendmail 4984 r25984: from=apache, size=273, class=0, nrcpts=1, msgid=<[email protected]>, relay=apache@localhost
sendmail 4985 r25985: ruleset=check_mail, arg1=, relay=mydomain.com [127.0.0.1], reject=553 5.5.4 ... Real domain name required for sender address
sendmail 4984 r25984: [email protected], ctladdr=apache (48/48), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30273, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0, stat=Data format error
sendmail 4984 r25984: r25984: DSN: Data format error

o cron é capaz de enviar e-mail para [email protected] sempre que houver um problema com o logrotate. Não tenho certeza porque o php é incapaz de fazê-lo. Eu tentei fazer alterações na configuração padrão em 'sendmail.mc com o seguinte:

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

Mas, não parece ter nenhum efeito. O cabeçalho do endereço na função mail php já foi definido. Eu também assegurei que o SELinux httpd_can_sendmail esteja habilitado. O que mais eu preciso fazer para receber a correspondência?

    
por Question Overflow 05.03.2013 / 11:48

4 respostas

9

Acho que acabei de resolver isso. Eu tenho o seguinte em / 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

O que eu preciso é colocar myserver.com na frente da linha com localhost.localdomain para que o sendmail pense que está usando um domínio real para enviar o email.

    
por 05.03.2013 / 14:07
2

Você tem que configurar, nos seus scripts, os cabeçalhos do seu email para ter From: [email protected] .

    
por 05.03.2013 / 12:13
1

No seu sendmail.mc add:

LOCAL_CONFIG
Djmyserver.com

Recompile sendmail.cf , reinicie o sendmail e você deve estar OK

    
por 05.03.2013 / 16:01
0

No meu caso, no Ubuntu 16.04 em uma instância do AWS, o que era necessário era adicionar /etc/mail/sendmail.mc :

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

em uma linha antes da linha MAILER_DEFINITIONS até o final do arquivo, e adicione a mesma linha ao final de /etc/mail/submit.mc . Em seguida, digite sudo su para permissões de root e compile para config com:

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

... então exit sudo. Finalmente, sudo service sendmail restart para reiniciar o sendmail e, a partir daí, os e-mails apareceram como enviados do nome do domínio. Nenhum dos outros comandos FEATURE ou MASQUERADE foi necessário, nem uma entrada no arquivo /etc/hosts .

    
por 10.01.2018 / 10:11