RSS

PHP mail localhost smtp gmail : Configuración para desarrollo web (Configure for web development)

16 May

Gmail IconUna buena manera de probar un sitio web que enviará correos ya sea automáticamente o mediante intervención del usuario o administrador es usar un servicio smtp (ofrecido por la mayoría de los gigantes de la web como Gmail de Google) desde tu equipo enviando el correo con algún tipo de programa.

Existen varias maneras de hacer esto, pero hoy solo mostraré como hice para enviar los correos desde mi sitio en desarrollo en mi computadora personal sin tener una ip pública.

Lo primero que hay que hacer es instalar el paquete apropiado, en este caso usaré SSMTP en mi sistema Archlinux.

# pacman -S ssmtp

Después hay que editar dos archivos, el primero es /etc/ssmtp/ssmtp.conf


root=<tucorreo>@gmail.com

mailhub=smtp.gmail.com:587

rewriteDomain=

hostname=<tucorreo>@gmail.com

UseSTARTTLS=YES

AuthUser=<tuusuariogmail>

AuthPass=<tucontraseñagmail>

FromLineOverride=YES

Después edita el archivo /etc/ssmtp/revaliases añadiendo las siguientes lineas


root:<tucorreo>@gmail.com:smtp.gmail.com:587

mainuser:<tucorreo>@gmail.com:smtp.gmail.com:587

Por último, modifica tu php.ini en la linea que dice sendmail_path cambiala por la siguiente


sendmail_path = '/usr/sbin/ssmtp -t -i'

Ahora ya está configurado todo para que puedas iniciar tu servidor apache

# rc.d start httpd

y puedas hacer uso de la función mail de php. Para lograr esto y enviar un correo de prueba, necesitas 4 cosas, el asunto, el cuerpo del correo, correo a quien se envía y los headers o cabeceras:


<?

$a_quien_se_dirige ='"Nombre del destinatario" <correo_del_destinatario@correo.com>';

$tema = 'Correo de prueba';

$mensaje = 'Aquí pondrías el mensaje o cuerpo del mensaje, para saltos de línea puedes añadirlos desde php con la variable PHP_EOL'.PHP_EOL.'-- tu firma';

$cabeceras = 'From: "Nombre del remitente" <correo_del_remitente@correo.com>'.PHP_EOL.'Reply-To: Correo_de_contestacion@correo.com'.PHP_EOL.'X-Mailer: PHP/'.phpversion();

mail($a_quien_se_dirije, $tema, $mensaje, $cabeceras);

Recuerda cambiar tus datos a los correctos en el código. Los campos en cabeceras pueden incluir cualquier campo que hay en un correo normal como CC etc. Intentalo, acabo de probarlo y funciona de maravilla.

Nota: Recuerda poner las opciones correctas en los archivos de configuración, ssmtp no le gusta usar solamente la opción -t como lo muestran muchos tutoriales, hay que usar la opción -i también.

English:

A good way to test if your web is sending emails eather automaticaly or with user intervention is to use SMTP services from an email server (like gmail) and use it from a smtp program on your machine.

There are several ways to do this but I will show you how to do it only with ssmtp and a gmail account. First you have to install the package from the repos, I’m using Archlinux so my command may differ from yours but in escence is the same.

# pacman -S ssmtp

After you have installed it, you have to edit /etc/ssmtp/ssmtp.conf


root=<yourEmailAccount>@gmail.com

mailhub=smtp.gmail.com:587

rewriteDomain=

hostname=<youEmailAccount>@gmail.com

UseSTARTTLS=YES

AuthUser=<yourEmailAccount>

AuthPass=<yourPassword>

FromLineOverride=YES

Then you have to edit /etc/ssmtp/revaliases changing and adding the lines


root:<yourEmailAccount>@gmail.com:smtp.gmail.com:587

mainuser:<yourEmailAccount>@gmail.com:smtp.gmail.com:587

Finaly edit your php.ini on the sendmail_path line


sendmail_path = '/usr/sbin/ssmtp -t -i'

Now start your Apache server

# rc.d start httpd

Last thing to do is test it on your code

<pre>
<?php

$to ='"Name of the destination mail" <email_from_destination_guy@mail.com>';

$Subject = 'Test mail';

$message = 'This is some random email to test the configurations'.PHP_EOL.'PHP_EOL is a variable to insert new line';

$headers = 'From: "Your name" <your_mail@mail.com>'.PHP_EOL.'Reply-To: replay_mail@mail.com'.PHP_EOL.'X-Mailer: PHP/'.phpversion();

mail($to, $subject, $message, $headers);

Remember to change all data to yours. In the headers you can add the CC field or any mail header to your needs.

Note: Remember to put all configurations correctly, ssmtp doesn’t like the use of -t only, you have to use the -i flag too or else it won’t work.

 
 

Etiquetas: , , , , , , , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: