www permission data php sendmail

php - permission - www data apache ubuntu



Problema del correo PHP con www-data (4)

Aunque esta es una pregunta antigua, estoy agregando esta respuesta en caso de que sea de ayuda para alguien:

Tuve el mismo problema con el encabezado From: se reescribió en www-data@host... Finalmente lo localicé en el servicio de puente ssmtp que estaba canalizando el correo de nuestro servidor web a nuestro servidor de correo. FromLineOverride=YES la línea FromLineOverride=YES en el archivo /etc/ssmtp/ssmtp.conf y el problema desapareció.

Estoy intentando invocar sendmail a través de la función de correo de PHP mediante el siguiente código:

$to = ''[email protected]''; $subject = ''test''; $message = ''test''; $headers = ''From: [email protected]'' . "/r/n" . ''Reply-To: [email protected]'' . "/r/n" . ''X-Mailer: PHP/'' . phpversion(); mail($to, $subject, $message, $headers);

Sin embargo, en mi mail.log recibo un mensaje que dice que no es la dirección que especifiqué en el encabezado:

<www-data@Name>: Sender address rejected: Domain not found

¿¿Por qué es esto?? Estoy ejecutando PHP-cgi en ubuntu ¿Por qué no sendmail usa el encabezado que he especificado a través del código PHP?


En mi caso, tengo un servidor alojado, así que tuve que editar este archivo:

/etc/ssmtp/ssmtp.conf

Luego descomenta esta línea:

FromLineOverride = YES

Una vez hecho esto, los encabezados personales están trabajando.


Esto funcionó para mí:

$mail->Sendmail = $mail->Sendmail.'' -f ''.$mail_errorsto;


Parece que www-data@Name es su sobre "de" dirección. La dirección "de" del sobre es diferente de la dirección que aparece en el encabezado "De:" del correo electrónico. Es lo que usa sendmail en su intercambio "MAIL FROM / RCPT TO" con el servidor de correo receptor. La razón principal por la que se llama una dirección de "sobre" es que aparece fuera del encabezado y cuerpo del mensaje, en el intercambio SMTP sin formato entre el correo. servidores

La dirección "de" predeterminada del sobre en unix depende de la implementación de sendmail que esté utilizando. Pero normalmente se configurará con el nombre de usuario del proceso en ejecución seguido de "@" y el nombre de host de la máquina. En una configuración típica, esto tendrá un aspecto similar a [email protected] .

Si sus servidores de correo electrónico rechazan sus correos electrónicos, o si necesita cambiar a qué dirección se envían los correos electrónicos de devolución, puede cambiar el sobre "de" dirección para resolver sus problemas.

Para cambiar la dirección "de" del sobre en unix, especifique una opción "-r" en su binario de sendmail. Puede hacer esto globalmente en php.ini agregando la opción "-r" a la línea de comando "sendmail_path". También puede hacerlo programáticamente desde PHP pasando -r [email protected] como el argumento de parámetro adicional a la función mail () (el quinto argumento). Si especifica una dirección en ambos lugares, se llamará al binario de sendmail con dos opciones "-r", que pueden tener un comportamiento indefinido dependiendo de su implementación de sendmail. Con el MTA de Postfix, las opciones "-r" posteriores anulan silenciosamente las opciones anteriores, lo que hace posible establecer un valor predeterminado global y aún así obtener un comportamiento sensato cuando intenta anularlo localmente.

EDITAR

Acerca de los indicadores opcionales que se pueden pasar a sendmail: -f establecerá la dirección de origen, -r anulará la ruta de retorno predeterminada que genera sendmail (normalmente se usa la dirección de origen). Si desea que sus recuperaciones se dirijan a una dirección diferente a la dirección from, intente usar ambos indicadores a la vez: -f [email protected] -r [email protected]

mi php.ini

[mail function] ; For Win32 only. ; http://php.net/smtp SMTP = localhost ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = [email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path ;sendmail_path = ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = On ; Log all mail() calls including the full path of the script, line #, to address and headers ;mail.log =