PHP Mail Relay via Remote smtp Server [duplicado]

1

Nós temos um aplicativo PHP em execução no Linux que envia e-mails para os usuários. Atualmente sua configuração como php.ini está configurada para enviar via servidor sendmail local, mas nós temos um servidor de email separado para a nossa organização para este domínio. Eu quero enviar os e-mails do aplicativo php através desse servidor SMTP remoto para que esses e-mails possam ter os registros SPF corretos e assinar via DKIM.

Mas eu não pude ver essa opção no php.ini para especificar o endereço do host remoto para encaminhar e-mails para ele, apenas para janelas.

Eu vi uma postagem que sugere phpMailer , mas não consegui descobrir como configurar isso para que todo o nosso aplicativo php pudesse enviar via SMTP remoto.

    
por Toqeer 30.09.2012 / 10:39

2 respostas

1

Eu instalaria o nullmailer e o configuraria para encaminhar e-mails para o seu servidor de retransmissão. A distribuição linux que você está usando provavelmente tem pacotes nullmailer, de modo que um binário sendmail (que é compatível com linha de comando) esteja instalado no local apropriado.

Se você não quiser instalar o nullmailer, é possível fazer com o sendmail também. Se você quiser, atualizarei a resposta.

ATUALIZAÇÃO:

Se você quiser fazer isso no sendmail, você tem várias opções:

(1) Em sendmail.mc, defina o SMART_HOST como seu servidor de retransmissão de e-mail:

define(SMART_HOST, 'smtp:[relay.server]')dnl

(2) Você pode usar FEATURE (nullclient) .

(3) Modifique o conjunto de regras 0 para fazer isso. Em sendmail.mc adicione as seguintes linhas:

LOCAL_RULE_0
R$* < @ $* . > $*       $#esmtp $@ [relay.server] $: $1 < @ $2 . > $3

Não copie e cole o snippet de código acima, pois o lado esquerdo é separado do lado direito com guias e não espaços.

Depois que você terminar de editar o sendmail.mc, você precisará compilar o sendmail.cf e reiniciar o sendmail. No Debian isso é feito executando sendmailconfig . No CentOS, isso é feito executando /etc/mail/make seguido por service sendmail restart .

    
por 30.09.2012 / 23:24
2

Por favor, procure primeiro, isso foi perguntado antes (por exemplo, em Como configurar o php.ini com SMTP remoto? ).

A função mail() do PHP sempre usa o sendmail (no Linux / Unix). Não há como alterar isso pelo php.ini. Isso deixa dois outros meios:

  • Para um único aplicativo, você pode substituir todas as chamadas para a função mail() com chamadas para uma biblioteca alternativa (por exemplo, PHPMailer).
  • Como uma solução mais geral, você pode configurar seu sendmail local (ou qualquer programa que forneça o comando sendmail ) para fazer a coisa certa, ou seja, definir o servidor de correio do domínio como um smarthost.
por 30.09.2012 / 10:57