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:
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í:mailhub=smtp.gmail.com:587 UseSTARTTLS=YES [email protected] AuthPass=tupassworddetucuentagmail
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 -t -i
; 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
; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
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