# [Postfix] Configurar Return-Path !

## Diabliyo

Estoy teniendo problemas para establecer el Return-Path, cuando envio un mail (mediante PHP), establesco el From, To, Subject y Contenido del correo, lo envio invocando la funcion mail() y efectivamente llega el correo, pero solamente el Return-Path posee una direccion de correo que la establece por su propia cuenta postfix (creo).

El return-path que se pone es: apache@midominio.com, y quiero establecer un return-path por defecto para todos los mails que envie, algo asi como: fail@midominio.com. Les dejo las cabeceras del ultimo mail que me envie de prueba:

Se envio:

```
To: yo_yo_yo@gmail.com

From: info@midominio.com
```

```
Delivered-To: yo_yo_yo@gmail.com

Received: by 10.216.44.204 with SMTP id n54cs86254web;

        Fri, 9 Jul 2010 16:33:08 -0700 (PDT)

Received: by 10.231.36.9 with SMTP id r9mr10815105ibd.105.1278718387418;

        Fri, 09 Jul 2010 16:33:07 -0700 (PDT)

Return-Path: <apache@midominio.com>

Received: from midominio.com ([201.100.18.246])

        by mx.google.com with ESMTP id a8si2898606ibi.65.2010.07.09.16.33.06;

        Fri, 09 Jul 2010 16:33:07 -0700 (PDT)

Received-SPF: pass (google.com: domain of apache@midominio.com designates 11.11.11.11 as permitted sender) client-ip=11.11.11.11;

Authentication-Results: mx.google.com; spf=pass (google.com: domain of apache@midominio.com designates 11.11.11.11 as permitted sender) smtp.mail=apache@midominio.com; dkim=neutral (body hash did not verify) header.i=@midominio.com

Received: by midominio.com (Postfix, from userid 81)

   id 6C9191A0058; Fri,  9 Jul 2010 18:33:05 -0500 (CDT)

X-DKIM: Sendmail DKIM Filter v2.8.3 midominio.com 6C9191A0058

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=midominio.com; s=default;

   t=1278718385; bh=bqOck/2YBFDQm4rsxoi/+4C0IVZguko8rsTa+YdQtdc=;

   h=To:Subject:MIME-Version:Content-Type:From:Message-Id:Date;

   b=1VtQq1aaRCnrAEtkLjpd60sqjBlzbAiP84KaaAKnB03g9J3Dzq3YRiVNfKcJPTRhh

    HZtHfapkOECCdb+MFcVGl+8rO+LzhK4nmJc5lw9PEUDyNNNzHv+sAd6oVEcP/pDC3W

    DD2GwSDS83s3sXgkcukAoptv4+lDaOGvCRwM4k5E=

To: yo_yo_yo@gmail.com

Subject: Prueba Servidor TS01

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary="2def5b59e71b88adee6f3af5f7b70a2f"

From: info@midominio.com

Message-Id: <20100709233305.6C9191A0058@midominio.com>

Date: Fri,  9 Jul 2010 18:33:05 -0500 (CDT)

```

La configuracion de postfix:

# cat /etc/postfix/main.cf

```
queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = //usr/lib/postfix

data_directory = /var/lib/postfix

mail_owner = postfix

unknown_local_recipient_reject_code = 550

# alias_database = dbm:/etc/mail/aliases

# alias_database = hash:/etc/aliases

debug_peer_level = 2

debugger_command =

    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

    ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail

newaliases_path = /usr/bin/newaliases

mailq_path = /usr/bin/mailq

setgid_group = postdrop

html_directory = /usr/share/doc/postfix-2.6.6/html

manpage_directory = /usr/share/man

sample_directory = /etc/postfix

readme_directory = /usr/share/doc/postfix-2.6.6/readme

home_mailbox = .maildir/

smtpd_sasl_local_domain = 

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes

smtpd_sasl_authenticated_header = yes

smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

inet_interfaces = all

mynetworks = 127.0.0.0/8

smtpd_tls_auth_only = no

smtp_use_tls = yes

smtpd_use_tls = yes

smtp_tls_note_starttls_offer = yes

smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key

smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt

smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem

smtpd_tls_loglevel = 1

smtpd_tls_received_header = yes

smtpd_tls_session_cache_timeout = 3600s

tls_random_source = dev:/dev/urandom

myhostname = crver.net

mydomain = crver.net

mydestination = $myhostname, localhost.$mydomain, localhost

mailbox_command = 

smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

smtpd_milters = inet:localhost:8891

non_smtpd_milters = inet:localhost:8891
```

Saludos !

----------

## opotonil

En principio no tiene sentido que la culpa sea de Postfix, aunque quizás si que pueda solucionarlo. Tiene mas pinta de ser cosa de PHP o Apache... no se si se podrá modificar en la configuración de alguno de los dos.

Haciendo una busqueda rapida en google (Return-Path apache) me aparecen algunos resultados en los que lo solucionan mediante PHP añadiendo al 5 parametro de "mail()" un "-f", aqui te los dejo:

http://www.zimbra.com/forums/administrators/13687-return-path-php-apache-mailing-changing-possible.html

http://www.webmasterworld.com/php/3408970.htm

Salu2.

----------

## Diabliyo

 *opotonil wrote:*   

> En principio no tiene sentido que la culpa sea de Postfix, aunque quizás si que pueda solucionarlo. Tiene mas pinta de ser cosa de PHP o Apache... no se si se podrá modificar en la configuración de alguno de los dos.
> 
> Haciendo una busqueda rapida en google (Return-Path apache) me aparecen algunos resultados en los que lo solucionan mediante PHP añadiendo al 5 parametro de "mail()" un "-f", aqui te los dejo:
> 
> http://www.zimbra.com/forums/administrators/13687-return-path-php-apache-mailing-changing-possible.html
> ...

 

Sin duda esa fue la solución, te agardesco, de paso dejo un script mini-sendmail que incorpora el 5to argumento que forza el Return-Path a establecerlo a como gustes:

```
<?php

if( isset($_POST["boton"]) && !strcmp($_POST["boton"], "Enviar") )

   {

   echo '<span>';

   $boundary= md5(time()); //valor boundary

   $htmlalt_boundary= $boundary. "_htmlalt"; //boundary suplementario

   $subject=$_POST["asunto"];

   $from= $_POST["from"];

   $to= $_POST["to"];

   # if( si quieres return-path personalizado) 

   $extra_arg= '-ferror@midominio.com';

   # else      $extra_arg= NULL;

   //cabeceras para enviar correo en formato HTML

   $headers = "MIME-Version: 1.0\r\n";

   $headers .= "Content-Type: multipart/mixed; boundary=\"". $boundary. "\"\r\n"; //datos mixteados

   $headers .= "From: ". $from. "\r\n"; //correo del que lo envia

   //incia cuerpo del mensaje que se visualiza

   $cuerpo="--". $boundary. "\r\n";

   $cuerpo .= "Content-Type: multipart/alternative; boundary=\"". $htmlalt_boundary. "\"\r\n\r\n"; //contenido alternativo: texto o html

   $cuerpo .= "--". $htmlalt_boundary. "\r\n";

   $cuerpo .= "Content-Type: text/html; charset=iso-8859-1\r\n";

   $cuerpo .= "Content-Transfer-Encoding: 8bits\r\n\r\n";

   $cuerpo .= $_POST["mensaje"];

   $cuerpo .= "\r\n\r\n";

   $cuerpo .= "--". $htmlalt_boundary. "--\r\n\r\n"; //fin cuerpo mensaje a mostrar

   $cuerpo .= "--". $boundary. "--\r\n\r\n"; 

   if( mail($to, $subject, $cuerpo, $headers, $extra_arg) == FALSE )

      echo 'Correo enviado con exito...';

   else

      echo 'Error al enviar...';

   echo '</span>';

   }

   

echo '<table>

<form action="sendmail.php" method="POST">

<td>From:</td><td><input type="text" name="from"></td><tr>

<td>To:</td><td><input type="text" name="to"></td><tr>

<td>Asunto:</td><td><input type="text" name="asunto"></td><tr>

<td colspan="2">Mensaje:</td><tr>

<td colspan="2"><textarea name="mensaje"></textarea></td><tr>

<td colspan="2"><input type="submit" name="boton" value="Enviar"></td>

</form>

</table>';

?>
```

----------

