Como configurar o sendmail para enviar somente para domínios especificados?

1

Eu tenho um servidor de desenvolvimento local (centos) no qual desenvolvo vários sites. Ocasionalmente, preciso testar os scripts de envio de e-mail.

Eu quero evitar que o servidor de desenvolvimento envie e-mails para qualquer pessoa que não tenha um endereço de e-mail com um domínio específico (ou seja: [email protected], [email protected], etc). Por isso, gostaria de criar uma lista ou regra branca no servidor que impeça o envio de e-mails para qualquer endereço de e-mail que não corresponda a mydomain.com.

Atualmente, estou usando a função mail () interna do PHP. Mas eu imagino que isso é algo mais no nível do servidor e gostaria de algo que irá gerenciar todos os e-mails enviados a partir do servidor de qualquer programa / app / script / etc.

Posso confirmar que o PHP está usando /usr/sbin/sendmail.sendmail

    
por David 17.09.2013 / 12:55

2 respostas

0

PHP mail() function envia mensagens de acordo com o MTA definido como sendmail_path valor em php.ini , por padrão, está configurado para seguir:

sendmail_path = /usr/sbin/sendmail -t -i

em alguns sistemas é um link simbólico para o binário do MTA, no meu caso é um binário compatível com sendmail do pacote MTA postfix, em outro caso pode ser o sendmail ou qmail ou o que você usa:

[root@giomacdesk ~]# ll /usr/sbin/sendmail
lrwxrwxrwx. 1 root root 21 ივლ  3 11:33 /usr/sbin/sendmail -> /etc/alternatives/mta
[root@giomacdesk ~]# ll /etc/alternatives/mta
lrwxrwxrwx. 1 root root 26 ივლ  3 11:33 /etc/alternatives/mta -> /usr/sbin/sendmail.postfix

Então, de acordo com isso, você pode:

altere sendmail_path para o seu script personalizado, escreva o analisador e filtre as mensagens de acordo. Isso afetará apenas as mensagens enviadas enviadas pelo PHP mail() , onde sendmail_path foi alterado.

alterar a configuração do servidor de e-mail - isso afetará todas as mensagens enviadas via MTA do seu servidor, para isso você deve verificar qual é o seu servidor e configurá-lo adequadamente

No caso do postfix:

  1. adicione o seguinte ao /etc/postfix/main.cf: transport_maps = hash:/etc/postfix/transport_maps

  2. crie o arquivo /etc/postfix/transport_maps com o seguinte conteúdo:

     alloweddomain.com :
     * discard:
    
  3. hash: execute postmap /etc/postfix/transport_maps

  4. reinicie o postfix

por 17.09.2013 / 14:37
0

aqui está como eu consegui fazer isso. No Sendmail, você precisa modificar o mailertable. Adicione o seguinte:

alloweddomainname.com   alloweddomainname.com
.   error:

Isso basicamente enviará e-mails para @ alloweddomainname.com e erro para qualquer outra coisa.

    
por 17.09.2013 / 15:47