Hola a todos.
Si estas programando en tu entorno local “localhost” y quieres mandar mails desde php necesitas tener instalado un servidor de correo SMTP .
En entornos linux uno de los mas utilizado es Postfix. Sin embargo si lo que queremos es simplemente poder enviar email desde nuestro entorno de puebas podemos optar por opciones mas livianas y simples.
Una opción ligera es instalar el paquete ssmtp.
En mi caso estoy trabajando desde un viejo portatil con lubuntu instalado, para otras distribuciones no derivadas de ubuntu el proceso de instalación puede ser diferente.
Para instalar el paquete ssmtp abrimos un terminal y escribimos:
sudo apt-get install ssmtp
Ahora debemos editar el archivo ssmtp.conf:
sudo nano /etc/ssmtp/ssmtp.conf
Descomentamos o añadimos si no existen las siguientes lineas:
mailhub=smtp.gmail.com:587 UseSTARTTLS=YES AuthUser=<YOUR-EMAIL>@gmail.com AuthPass=<YOUR-PASSWORD>
Debemos sustituir lo que se encuentra entre “<” y “>” por nuestros valores.
En este caso vamos a utilizar nuestra cuenta de gmail para enviar el correo así que en AuthUser pondremos nuestra dirección de mail de gmail y enAuthPass la contraseña que utilizamos para acceder a nuestra cuenta de gmail.
Si lo dejamos así en el from del los mails delante de la dirección de correo desde donde se envía aparecerá “www-data”, para poder cambiar el from desde php tenemos que añadir tambien la siguiente linea en ssmtp.conf:
FromLineOverride=YES
Ahora guardamos el archivo (Ctrl+O si lo editas con nano) y salimos (Ctrl+X).
Ahora tenemos que editar el archivo php.ini para asignar la variable sendmail_path:
sudo nano /etc/php5/apache2/php.ini
Buscamos la linea sendmail_path (Ctrl + W para buscar desde nano).
y la dejamos de la siguiente manera:
sendmail_path = /usr/sbin/ssmtp -t
Guardamos (Ctrl + O) y salimos (Ctrl + X).
Reiniciamos el servidor apache:
sudo /etc/init.d/apache2 restart
Y ya podemos enviar mails desde php utilizando la función mail() o wp_mail() si estais usando wordpress.
¿Necesitas un presupuesto para un desarrollo WordPress a medida?
¿Quieres un plugin a medida que realice una funcionalidad concreta que necesitas para tu WordPress?
Solicita un presupuesto sin compromiso:
Un saludo, y si aún no lo has hecho no olvides suscribirte a mi blog para no perderte los próximos posts :-),También puedes seguirme en Twitter en @revigames y no olvides que me ayudas mucho si compartes este post en las redes sociales.
Excelenteeeeeee!! Graciaaaass!!!! si funciona 🙂
Me alegro de que te haya funcionado 🙂
Un saludo.
Buen dia, Quisiera saber si esos comandos tambien funcionan para centOS???
Hola Alvaro.
centOS utiliza paquetes rpm y ssmtp no se encuentra en los repositorios, por lo que primero tienes que instalar el repositorio con:
rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
y depues para instalar el paquete en lugar de apt-get se utiliza yum install ssmtp
No lo he probado en centOS pero la diferencia básica son el tipo de paquete y repositorios que utiliza la la hora de instalarlo, el resto de configuraciones debería ser similar, pero te recomiendo que busques información de como instalar y configurar ssmtp en centOS.
Gracias por tu comentario.
Hola, una consulta y es posible también poder usar con un dominio propio x ejem en vez de gmail.com usar dominio.com
Gracias de antemano, por tú rpta.
Hola, en principio si se puede utilizar con dominio propio, si lo pruebas y funciona seria interesante que lo comentases aquí para confirmarlo.
Gracias por comentar
Hola en la parte de
:mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=@gmail.com
AuthPass=
se puede colocar mas de un mail para enviar como Authusers , ya que tengo que realizarlo para varios usuarios.
saludos.
Hola Horacio:
Solo se puede colocar una cuenta de correo , es la que se va a utilizar para enviar los correos lo que no quiere decir que sea la cuenta que tenga que aparecer como from a la hora de enviar. Desde php puedes indicar en las cabeceras del mail el from que quieres que aparezca.
Para poder sobreescribir el from de las cabeceras desde php tienes que añadir la linea FromLineOverride=YES en el archivo ssmtp.conf tal y como indico el el post.
Hola Mira te envio mi codigo que tengo en el controller de mi php.
if($_SERVER[‘REQUEST_METHOD’] == “POST”){
if (isset($_POST[‘envio_mail_value’]) && $_POST[‘envio_mail_value’] == 1) {
//$email = $_POST[’email’]; // esta es la direccion a la que le mandas el correo
$email = “bogarin1983@gmail.com”;
$respuesta = $_POST[‘respuesta’];
$dni = $_POST[‘dni’];
$cuerpoMail =”DNI: “.$dni.”Respuesta a tu reclamo: “. $respuesta ;
//Titulo
$titulo = “Respuesta al reclamo”;
//cabecera
$headers = “MIME-Version: 1.0rn”;
$headers .= “Content-type: text/html; charset=iso-8859-1rn”;
//direccion del remitente
$headers .= “From: Horacio Bogarin rn”;
//Enviamos el mensaje a info@geekytheory.com
$bool = mail($email,$titulo,$cuerpoMail,$headers);
if($bool){
//echo “Mensaje enviado”;
}else{
//echo “Mensaje no enviado”;
}
Hola de nuevo Horacio, Si quieres que en el from aparezca tu dirección de correo debes poner algo como esto:
“From: Horacio Bogarinrn”;
Incluyendo también la dirección de correo.
Buenos tardes llevo dias tratando de configurar el servidor para que me envie emails pero nada tengo esta confoguracion en mi ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=postmaster
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=+++++@gmail.com
AuthPass=+++++++
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=programador
# Are users allowed to set their own From: address?
# YES – Allow the user to specify their own From: address
# NO – Use the system generated From: address
FromLineOverride=YES
#sendmail_path = /usr/sbin/ssmtp -t
Hola Carlos, ¿Has asignado sendmail_path en php.ini?
Hola Amigo,
Hice todo lo del tutorial y funciono pero el detalle estuvo en que gmail me patio porque dijo que trate de acceder desde una aplicación no segura. que podría hacer…
Buenas noches, Quisiera saber si es posible configurar una cuenta de dominio diferente, ya que he estado realizando pruebas con un dominio propio y hasta los momento no he podido configurarlo.
Hola amigo, que tal, he realizado todo paso a paso, pero no me ha funcionado, que podrá ser?
Excelente muchas gracias. Todo funcionó a la perfección.
Saludos
Buenas! Esta solución sigue operativa incluso con PHP7, pero no me adjunta los archivos… alguna pista más de alguna línea más para poder enviar archivos adjuntos?
Una duda, lo que quiero es montar mi servidor de correo smtp, no usar el servidor de gmail, como hago esto?
es decir, quiero tener mi propio servidor smtp, smtp.midominio.net en vez de smtp.gmail.com, ya? según con mercury smtp se puede pero no lo he logrado
Hola buenas tardes, tu código me funciono a la perfección.
Solo que ahora recibo los correos de esta forma:
www-data
No se como poner que en lugar de que salga www-data aparezca un nombre diferente.
Saludos.
ya me canse de las aplicaciones de linux, siempre les falta algo para el peso, la realidad es que este “sistema operativo” es para viejos decrepitos que cuentan con tiempo al pedo para estar probando si anda o no anda.
Viva Windows, es la vida y la felicidad misma.
Que hago ahora con mi tiempo libre?