Apache, hosts virtuais e remetente padrão para o sendmail

1

Então aqui está o meu problema ... Eu tenho dois sites hospedados em uma máquina usando os hosts virtuais do apache. Quero enviar e-mails dos dois sites diferentes (domain.com e domain2.com) usando os endereços de e-mail apropriados. Eu tenho atualmente este valor em php.ini:

sendmail_path = /usr/sbin/sendmail -t -i [email protected]

Mas quando tento enviar um email a partir de um script no domínio2.com, obviamente ele é entregue com o cabeçalho From: [email protected] . O Apache não permite que você defina uma regra como essa na diretiva <VirtualHost> :

php_admin_value sendmail_path "/usr/sbin/sendmail -t -i [email protected]"

Então, qual é a melhor maneira de conseguir isso? Tentei definir php_admin_value mail.force_extra_parameters "[email protected]" na diretiva <VirtualHost> do domínio2.com, mas todos os e-mails ainda são provenientes do domínio.com. Alguma idéia?

    
por Jeff 07.12.2011 / 11:44

3 respostas

4

Embora não seja permitido definir o sendmail_path dentro da diretiva <VirtualHost> , pode defini-lo na diretiva <Directory> . Então eu simplesmente tenho algo parecido com isto:

<VirtualHost *:80>
    Standard stuff goes here

    <Directory /dir/to/your/web/root>
        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i [email protected]"
    </Directory>

</VirtualHost>

Eu não tenho certeza se é a forma mais adequada ou elegante de conseguir isso, mas definitivamente funcionou. Desculpe demorou tanto para responder, eu não faço SF frequentemente e esqueci dessa questão.

    
por 03.02.2012 / 04:27
0

Você precisa remover o [email protected] do seu php.ini. Em seguida, modifique a função mail para cada script que envie emails para cada host adequadamente. Dessa forma, você pode passar o argumento -f correto para cada host virtual.

    
por 07.12.2011 / 17:56
0

Eu tenho enfrentado problemas quando eu tentei modificar meu sendmail_path usando php_value ou ini_set / ini_get (mesmo com o safe_mode off! Eu realmente não sei porque - PHP 5.3.3). No entanto, eu re-li o php mail () função , e é a solução estava na função. / p>

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Então, último parâmetro permite parâmetros adicionais. Eu mudei meu código de e-mail php mail ($ para, $ assunto, $ mensagem, implode ("\ r \ n", $ headerFields), "- f". $ de );

Acho que Jeff você achará isso mais inteligente.

Espero que isso ajude.

    
por 26.06.2017 / 12:16