Enviar emails con Mercury/32 y XAMPP
Xampp es un excelente paquete para instalarnos un auténtico servidor Web, de correo, FTP y base de datos MySQL, en Windows.
Las siguientes instrucciones indican cómo configurar Mercury para poder utilizar un correo externo, ya sea de Gmail o un servicio de hosting, mediante el servidor Mercury/32 que trae Xampp. Lo que vamos a usar es un Relay SMTP.
Esto puede ser muy útil para poder utilizar las características de envío de email de muchas aplicaciones Web, por ejemplo:
- Enviar emails en WordPress
- Enviar emails en Joomla
- Enviar emails en PHPMailer
- etc.
Iniciar Mercury/32
Una vez iniciado Mercury, vamos a la opción de Administración que aparece como Admin… en Xampp Control Panel Application.
Módulos
En el menú Configuration vamos a Protocol Modules y activamos MercuryC SMTP relaying client.
Conviene reiniciar el servicio Mercury para que los cambios de módulo tengan efecto.
SMTP Relay Client
Luego vamos a Configuration -> Mercury SMTP Reply Client Configuration.
Aquí es donde se configuran los datos de una cuenta de correo externa, que será la utilizada para enviar el correo mediante Relay.
Dependiendo de qué tipo de cuenta tengamos, habrá que completar de una manera u otra.
Gmail
Si queremos usar nuestra cuenta de Gmail, tendremos que especificar algunos parámetros de conexión tal como indica la ayuda de Google.
- Smart Host Name: smtp.gmail.com
- Connection Port/type: 587
- SSL Encryption via STARTTLS command
- Login username: <cuenta de gmail>
- Password: <password de gmail>
Otros cuentas de emails
Para las cuentas de correo en otros servicios de correo, eventualmente los ofrecidos por los paquetes de Hosting estándar, bastaría con configurar lo siguiente:
- Smart Host Name: <poner servidor de email de tu hosting, por ejemplo mail.midominio.com>
- Connection Port/type: <usualmente es 25>
- Normal (no SSL encryption)
- Login username: <cuenta de correo, ej. info@midominio.com>
- Password: <password>
Probar que Mercury funciona
Ir a File -> Send Mail Message o presionar CTRL-N para enviar un nuevo email.
Escribir una dirección de destino (destinatario), asunto y contenido del mensaje. Luego enviarlo con el botón Send.
Al cabo de unos segundos el destinatario recibirá tu correo de prueba, el email que fue enviado desde Mercury y al cual se le aplicó el Relay a tu servidor de correo externo. Luego éste servidor se encargó de mandar el email al destinatario.
Configurar PHP.INI
Luego basta configurar el archivo php.ini y a segurarse que tenga las siguientes entradas de configuración:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
; For Win32 only.
sendmail_from = postmaster@localhost
Una vez guardado los cambios, hay que reiniciar el servicio de Apache para que tome los valores de php.ini
Probando los cambios
Finalmente, para probar que la configuración ha sido exitosa, basta con crear un simple archivo test.php por ejemplo en el directorio usando como document root del servidor c:\xampp\htdocs e incluir la función mail().
<?php
mail(‘xxxx@gmail.com’, ‘Comprobar Mercury’, ‘Prueba de contenido’);
?>
Luego, hay que apuntar nuestro navegador a http://localhost/test.php para ejecutar la función mail(). Si todo sale bien, recibirás un correo en xxxx@gmail.com
Artículos relacionados:
- Configurar WordPress para enviar emails usando SMTP
En caso que no tengamos un servidor de correo configurado... - Enviar E-Mails con PHP usando PHPMailer
Son muchas las aplicaciones que necesitan enviar emails, ya sea... - Cómo enviar un correo
Veamos cómo hacer para enviar un correo dependiendo del cliente... - Cómo enviar emails de confirmación al administrador en PrestaShop
Para enviar emails de confirmación de ventas al administrador en...
Hola, gracias por el manual. Los mensajes de pruebas desde Mercury los manda bien, pero cuando implemento cualquier código php, por muy simple que sea (como el de tu ejemplo), me salen errores o simplemente no entra al if correspondiente y se va directo al else (lo cual no entiendo).
Cualquier ayuda es bienvenida.
Gracias de antemano.
Saluda atte.
Felipe López P.
Hola Felipe. Podés comentarme qué tipo de error te da? A ver si te podemos ayudar. Tenés instalado XAMPP en Windows?
Saludos
Hola, gracias por contestar tan rápido un día domingo jajaj.
Tengo instalado el Xampp bajo Windows.
Al intentar correr el mismo ejemplo que das al final, reemplazando el mail, me da el siguiente error:
Parse error: parse error in C:\xampp\htdocs\test.php on line 2
Saludos.
Ese error claramente es un problema de sintaxis. Fijate si al copiar y pegar el ejemplo no te cambió las “comillas simples” por otros caracteres, o en todo caso revisá que lo que hayas escrito no tenga errores de sintaxis.
Con eso lo solucionás. Saludos.
Este es el código, y no funciona.
Saludos.
viejo comovas ?
que pasa estoy esperando post de adsense y todas esas buenas cosas de las que habals por aca
comentanos
saludos
Hola cómo estás? Gracias por tu comentario, he estado algo complicado de trabajo pero prometo volver a publicar nuevas entradas en estos días.
Un saludo.
Hola muy buen tutorial, lei uno en ingles pero no sabia donde estaban ciertas cosas.
Mi problema está en que está todo bien configurado (exactamente como lo has puesto tu, incluso con una cuenta gmail). En las ventanitas de:
-Mercury Core Module me dice que OK pero en
-Mercury SMTP Client (relay version) me dice error en FF servicing queue job.
El resultado es que no se me envia ningun correo, no me llega nada.
A ver si puedes ayudarme, un saludo!
Excelente aporte amigo !!
Para los que han tenido problemas…
Entren a Configuration > Mercury SMTP Server, en la pestaña “Connection Control”
y verifiquen que esté desmarcada la opción “Do not permit SMTP relaying of non-local mail”
bueno a mí me funciono así.. ya que me tiraba el php ese errror justamente…
saludos !
Gracias por tu aporte. Saludos.
Si, ese paso ya lo realizé. Cuando intento enviar un email me dice que no se puede inicializar las funciones mails()…
En fin, sigo atascado. Gracias de todas formas
buenas buenas gente, exelente post, la verdad muy util, pero estoy igual que buryni, no me manda los mails
y ya desmarque la casilla de “Do not permit SMTP relaying of non-local mail” y los datos de correo estan bien, algun otro dato que podria estar faltando?? gracias y espero respuesta
buenas gente pude solucionarlo en mi caso, hice lo del relay, el problema era que mi proveedor de mail usa el puerto 80 no el 25 para las conexiones smtp, prueben eso, en mi caso es godaddy, de todas formas aunque funciona no me llega el mail a traves de la cuenta de mail especificada, si no que me llegan desde postmaster@localhost.com, esto esta bien asi??? y tambien es que mi wordpress sigue sin funcionar a pesar de estas configuraciones
tengo que configurar algo mas en wordpress mismo?? muchas gracias!!!
Hola a todos, saludos desde Colombia.
Muchas gracias por compartir tu conocimiento, mira que realice todos los pasos, tanto en el php.ini, como en el Mercury/32 y no me llegan los mensajes a mi casilla de correo, tampoco llega el mensaje de prueba desde Mercury.
Y lo que es más increible, el script php no me genera errores.
Sabes que puede ser?
Mil gracias por tu ayuda.
Que tal amigo, antes que todo muy buena guía. Aunque le encontré un pequeño detalle, en la parte de configuración de Gmail pones “Smart Host Name: smpt.gmail.com” y según la misma página de ayuda de Google debería ser “Smart Host Name: SMTP.gmail.com” (Hubo error de dedo me supongo, en vez de poner smtp pusiste smpt)
Saludos.
@jonateo, gracias por tu comentario, efectivamente había un error de tipeo. Ya quedó corregido. Saludos!
@john, quizás el problema se debía a éste error de tipeo que introduje.
Hola, mil gracias por su respuesta.
Tambien estuve mirando la ayuda de Google y tenia correctamente escrito “smtp.gmail.com”.
Quizá por esto, supongo yo, que el script no me mostraba errores.
Seguí buscando dentro de varias carpetas de mi sistema y encontré:
en la carpeta C:\WINDOWS – un archivo php.ini
en la carpeta C:\xampp\php – un archivo php.ini
en la carpeta C:\xampp\phpMyAdmin – un archivo php.ini
y en todos habia hecho los mismos cambios.
Entonces pensé en eliminar el XAMPP e instalarlo de nuevo, y sólo quedé con un archivo php.ini en la carpeta C:\xampp\php, configuré nuevamente el Mercury con las indicaciones aquí mostradas y efectivamente funcionó.
Deduzco entonces por lo experimentado, que si no funciona de primerazo, es necesario buscar copias del php.ini en las carpetas antes mencionadas y quizá si necesidad de reinstalarlo solo dejando el que esta en la carpeta php funcione.
Mil gracias por su ayuda, y espero que a alguien le sirva de algo mi experiencia.
De nuevo mil gracias por la ayuda, y en lo que pueda, a la orden…!!!
Saludos desde Colombia.
@john, gracias por tu comentario. Seguramente servirá a más de uno.
Sobre php.ini, es posible que haya varios archivos php.ini en el disco duro. Para saber cuál estás efectamente usando, lo más sencillo aveces es crearte un archivo prueba.php en localhost, que tenga solamente la llamada a la función phpinfo, de esta manera < ?php phpinfo() ?>, luego lo ejecutas con http://localhost/prueba.php
Un saludo!
Es posible enviar mails a correos con mercury sin la necesidad de usar un servidor externo? es decir, mercury puede funcionar como servidor de correos? y si sî como??
gracias
Muy interesante funciono correctamente buen tutotial saludos y muchas gracias!
Muchas gracias, este instructivo fue lo mejor que me pudo pasar en este dia, todo funciono perfecto. De verdad, estoy mas que agradecido. Sos un grande !!!
he tratado de todas las formas hasta abri el puero 25, tengo solo instaklado el mercury 32 con servidor apache
recivo bien todo lo de afuera pero cuando mando me dice que lo mando y etc pero naaa
quien me da una manito soy autodidacta
rodolfohp@gmail.com http://rodolfohp.dyndns.biz se agradece
Hola1, queria saber como hago para usar el mercury para enviar y recibir mails externos (me da “error FF servicing queue job” cuando envio a coreos externos y no puedo recibir desde correos externos), sin la necesidad de usar un servidor externo, esto seria mi propio dominio en mi servidor para enviar o recibir desde cuentas externas. Como se piede hacer esto?
un dato mas: para ver los correos recibidos o para enviarlos uso el “Mozilla Thunderbird”, todo funciona bien de forma local
pensaba que tenia calro lo de la configuracion de la cuenta externa de smtp.gmail.com, pero no se como hacer ni donde encontrar o donde va “SSL Encryption via STARTTLS command” en mercury
Mi consulta es si existe alguna forma de poder terner mi propio servidor de email tanto smtp como pop3 como si fuera un hosting.
Tengo instaldo xamp y me fue mucho mas fácil y rapido que el appserv y lo recomiendo. Con el DynDns ya tienes casi todo lo necesario para alojar en tu pc todo lo que quieras.
Lo que nunca he logrado es hacer mi propio servidor email; He probado con Mercury 32, IMail, Agrosoft, Advsmtp… etc.
¿Tengo que configurar algo en el DynDns? aun así me gustaria tener mi user@hostin.es como a mi me gustaria sin tener que ir a un servidor externo es decir por remeling.
No se si es por mi ISP o por otra razón por ej. http://www.spamhaus.org que tenga pilladas mis ips , aunque lo dudo por que son dinamicas.
En resume, sin usar gmail, hosting… se podria conseguir??
Muchas gracias, un saludo.
Me pas lo mismo que al ultimo compañero en mi caso yo uso en lugar de DynDns estoy empleando con NO-IP, Tengo mi router dinamico y lo estoy controlando mediante NO-IP
Generé una cuenta Apps en Google Yo coloque la siguiente configuración en Mercury/32, en la seccion de MercuryC SMTP Relay.
Smart Host: smtp.google.com
Conect to TCP/IP port :587
Anuncie myself: >lo deje en blancoel correo de la cuenta administradora en google appscontraseña de la cuenta<
cuando activo la casilla de "authenticate via prior POP3 connection"
me aparece el error de : Error FF Servicing queue job
Cuando la desmarco no me parece el error, así que la deje así y realice una prueba de envio mi resultado fue:
No lo pudo enviar el correo al exterior y no se por que.
Alguien me puede ayudar, gracias …
hola, super bueno tu tutorial…felicitaciones…mi pregunta es:
cual seria la configuracion de correo en joomla 1.5 ,,,
Muchas gracias, con tu ayuda hice que me funcionase perfectamente en envío de los comentarios en mi web.
Saludos.
Saludos exelente tutorial, ya configure todo varias veces y me sigue saliendo el error: error FF servicing queue job, ya lei y vi todas las posibles soluciones y nada no se si alguien halla tenido el mismo problema que yo y lo halla solucionado, bueno muchas gracias
hice todo lo que ustedes diejeron people pero nada miren el error que me envia el server
Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in D:\Desarrollo_Web\xampp\htdocs\file.php on line 2
hice todo lo que ustedes diejeron people pero nada miren el error que me envia el server
Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in D:\Desarrollo_Web\xampp\htdocs\file.php on line 2 por favor espero respuesta
thanks me sirvio , con algunos coments mas que tome en cuanta por que si no igual no salia.
Che lo estuve probando al mercury y me a andado bien pero muy lento envio un mensaje por mercury a traves de file–>send mail message y llega al correo destinatario al otro dia jajaj por q es eso o ay q configurar algo para q lo envie un poko mas rapido y no tan lenteja. espero una respeusta, cualquier cosa mi correo es —–
Gracias..me sirvio,si funciona.
Tengo un problema, tengo una web instalada en una maquina que es un subdominio. Sobre ella monte xampp y una pagina en joomla que tiene un modulo para enviar correo al administrador.
Configure mercury para enviar correos a una cuenta externa de gmail la que a su vez reenvia a otra cuenta.
El problema es que de pronto veo como si entraran correos. Muchos, vienen de yahoo.cw o direcciones de rusia pero de pronto muchisimas. Mi Gmail no marca que reciba nada. Lo deje asi y resulta que mercury acumulaba muchisima informacion en sus archivos. Tantos que se me estropea a las 2 semanas de estar recibiendo tanto correo en sus ventanas de recepcion de correos. Podrian orientarme para ver como bloquear esto ?
Gracias
Hola, desde Colombia, excelentes ayudas, revise todo los comentarios y encontré varios errores que tenia , el principal era el de configuración del mercury “smtp.gmail.com” y desmarcar la casilla de “Do not permit SMTP relaying of non-local mail” que esta en Configuration > Mercury SMTP Server, en la pestaña “Connection Control”, ya puedo enviar mis mails. ..Gracias a todos los colaboradores… si alguien no a podido solucionar este problema, voy a crear un tuto con pantallazos para que sea de mejor agrado….
ese tutorial del mercury no hace falta, el relay lo hace cualquier gestor de contenidos o “cms” nada mas poner los datos del servidor smtp llamese gmail o domain de hotmail, se coloca los puertos, el nombre de la cuenta y listo, el mercury queda inservible,
la idea es que uno tenga su propio servidor de cuentas gestionables y casillas de correos correo@mi_dominio.com, no depender de terceros para que gestionen Pop3 y SMTP.
Hola, soy un novato en php, pero gracias a este manual y el que encontré en http://goliatenterrado.es/2009/03/03/configurar-el-mercury32-del-xampp-para-enviar-correos-externos/
he conseguido que me funcione el correo. Gracias sinceramente por vuestra ayuda.
Me da error: Parse error: syntax error, unexpected ‘@’ in D:\xampp\htdocs\e-mail.php on line 2
Mmm, qué versión tienes de Xampp+Apache+Mercury?
Me da error: Parse error: syntax error, unexpected ‘@’ in D:\xampp\htdocs\e-mail.php on line 2 y tengo la version
1.7.3 windows 6.0
He hecho todos los cambios q sugieren y me sigue saleindo ese error
alguien q m de una sugerencia
ayuda me sale el ismo eeror q alos 2 ultimos
Bueno la causa de que no muestre error alguno cuando se envía el mail es mas que nada por el antivirus que uno tiene instalado lo probé en el mio no funcionaba también pero después de apagar el antivirus en mi caso nod32 con win xp ahí si me funciono
Si os aparece el siguiente mensaje de error:
Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in /root/web/tests/mail.php
Consultar la siguiente dirección para resolverlo:
http://www.tomasdev.com.ar/web-dev/smtp-server-response-553
usando la cuenta de gmail va bien.
Pero si quieres tener tu propio servidor de correo y no depender de la cuenta de gmail (u otra) hay que tener en cuenta que muchos ISP bloquean el puerto 25.
saludos ya pudee hacer funcionar el mercury solo tengo el problema es que no se como hacer que funcione con joomla, en joomla ya no me marca errores de envio, pero los correos no llegan, cuando hago el test mediante el archivo test.php si me llegan los correos.
2011 y este articulo sigue siendo util
Por otro lado quizas te falto agregar que el mercury (no se que version exacta) tiene un bug el cual lo hace iniciar en modo offline (aunque parece online) y por eso fallan los envios. Hay que mandarlo offline en el menu archivo y despues regresarlo a online en la misma opcion.
Hola Francisco! Me alegro que te haya servido. Y gracias por el dato sobre ese bug.
Un saludo!
hola
estoy intentando enviar email con Mercury/32, en mi portatil que tiene windows vista si me funciona pero en otro ordenador con windows xp no me funciona me aparece el siguiente error:
failed.
Error FF servicing queue job.
La configuracion la he echo de la misma forma en ambos ordenadores y no entiendo porque en uno funciona perfectamente y en otro no
¿puede ser cosa del antivirus? tengo McAfee y HPProtectTools
por favor necesito ayuda yo tengo mi xamp instalado correctamente y me funciona bien pero ahora cada ves que reinicio en servicio no se me envia los correos y no se que es alguien me puede ayudar??? tengo todo correctamente instalado
ya me ha pasado varias veces la otra ves fue por el cortafuegos de windows 7 pero ahora lo tengo desabilitado y no se que es, por favor si alguien me pudiera ayudar estaria eternamente agradecido
gracias