Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2014, 02:10
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Ubuntu, LAMP Server, función php mail(), como enviar emails

Un saludo a todos.
He estado tiempo intentando ver como en mi servidor casero con Ubuntu Server 12.04 LTS, LAMP Server (apache, php, mysql y phpmyadmin) puedo enviar emails en formularios etc.
Postee hace tiempo unas preguntas en foros del web para ver que podía hacer pero sin llegar a hacer nada en claro.
Lo he conseguido y lo comparto para quien pueda tener este mismo problema.
OJO, esto no es montar un servidor de correos completo solo que php pueda usar su función "mail()".

a) Lo podemos hacer con la clase "phpmailer" que hay que trastocar un archivo para poner los datos de tu cuenta de gmail para que php pueda enviar email. Este método está muy bien pero tiene un problemilla para mi, tengo que meter la clase en cada web que haga y use en mi servidor casero.

b) He encontrado otra forma de hacerlo que no hay que subir con cada web la clase phpmailer y es de la siguiente manera (funciona 100%, comprobado) por lo que paso a exponerlo para quien le interese:

Cuendo instalas ubuntu ya trae instalado "sendmail", en mi caso estuve haciendo pruebas por lo que lo desinstalé e instalé "postfix" para probar con varios tutoriales que encontré pero que nunca puede hacerlo:

1) desinstalé postfix y volví a instalar sendmail:
# apt-get purge postfix
# apt-get install sendmail

2) Instalar ssmpt:
# apt-get install ssmtp

3) Configurar ssmpt para gmail. Vamos al archivo /etc/ssmtp/ssmtp.conf y cambiamos estas líneas:
Código:
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
[email protected]
AuthPass=tupassworddetucuentagmail
4) Nos vamos a /etc/php5/apache2/php.ini y deben estar comentadas todas las líneas excepto las que os pongo, quedaría así:
Código PHP:
[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 me@example.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
 ; 
http://php.net/sendmail-path
 
sendmail_path = /usr/sbin/sendmail --i
Force the addition of the specified parameters to be passed as extra parameters
 
to the sendmail binaryThese parameters will always replace the value of
 
the 5th parameter to mail(), even in safe mode.
 ;
mail.force_extra_parameters =
Add X-PHP-Originating-Scriptthat will include uid of the script followed by the filename
 mail
.add_x_header On
The path to a log file that will log all mail() callsLog entries include
 ; 
the full path of the scriptline numberTo address and headers.
 ;
mail.log 
OJO, Redirigir puerto 25 a la ip interna del servidor, yo particularmente tengo redirigidos todos los puertos a esa ip.

5) Nos vamos a la cuenta de nuestro gmail y arriba a la derecha hay una ruidita con un desplegable, desplegamos y vamos a configuración, dentro, nos vamos a cuentas e importación, dentro, nos vamos a la línea que pone "enviar mensaje como", aparecera tu nombre y cuenta de gmail, debajo hay un enlace que dice "Añadir otra dirección de correos tuya", se abrirá un desplegable en el cual podrás:

Nombre: El de tu empresa o el que quieras
Dirección de correos electrónico: El email del remitente que quieras que tenga el envío de email con la función php mail().
OJO desmarcad la casilla "Tratarlo como unalias" por el siguiente motivo:

Ejemplo: Juan, a veces, envía mensajes a clientes en nombre de su directora, María, así que añade la dirección de María como dirección de Enviar mensaje como y desmarca la casilla Tratar como un alias. Ahora, los mensajes que Juan envía a María no aparecen como no leídos en la carpeta "Recibidos" de Juan y, si María le envía un mensaje, el campo "Para:" se rellena automáticamente con la dirección de María cuando él responde.

Guardais los cambio y vuala, tu servidor personal con ubuntu, LAMP y ssmpt ya puede enviar email con la función de php "mail()".

Un saludo a todos y espero que os sirva de algo: Manyblue

Última edición por manyblue; 11/09/2014 a las 13:37