¿Cómo configurar XAMPP para enviar correo desde localhost?
256
Estoy tratando de enviar correo desde localhost. pero no puedo enviar el correo desde localhost, ¿alguien puede decirme cómo reconfigurar mi xampp para enviar correo desde localhost?
Imposible ayudar si no nos da la configuración actual.
arkascha
1
¿Sigue siendo relevante con Mercury incluido (ApacheFriends XAMPP 1.8.2)? Creo que sí, pero si hay personas que prefieren Mercurio, indíquelo a continuación. :) ¡Gracias!
Puede enviar correo desde localhost con el paquete sendmail, el paquete sendmail está incorporado en XAMPP. Entonces, si está utilizando XAMPP, puede enviar fácilmente correo desde localhost.
por ejemplo, puede configurar C:\xampp\php\php.iniy c:\xampp\sendmail\sendmail.inipara que gmail envíe correo.
en C:\xampp\php\php.inibuscar extension=php_openssl.dlly eliminar el punto y coma del comienzo de esa línea para que SSL funcione para gmail para localhost.
en el archivo php.ini buscar [mail function]y cambiar
Ahora lo has hecho !! crear un archivo php con la función de correo y enviar correo desde localhost.
PD: no olvide reemplazar my-gmail-id y my-gmail-password en el código anterior. Además, no olvide eliminar las claves duplicadas si copió la configuración desde arriba. Por ejemplo, comente la siguiente línea si hay otro sendmail_path : sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"en el archivo php.ini
Recuerde también reiniciar el servidor utilizando el panel de control XAMMP para que los cambios surtan efecto.
aparte de las configuraciones anteriores, necesitaba actualizar mi sendmail glob.com.au/sendmail
kaz
1
Tuve que actualizar de XAMMP 1.7.7 a 2.8.2.3: sendmail está incluido en el XAMPP más nuevo. Intenté usar un sendmail más nuevo con 1.7.7 hace unos meses y no pude hacerlo funcionar; finalmente mordí la bala y usé el nuevo XAMPP y funciona como se describe.
VanAlbert
2
Creo que la ubicación C: \ xampp \ php \ php.ini se refiere a entornos de Windows. Para mac, busque en xamppfiles / etc para su archivo php.ini.
Paul Trotter
3
@Vikas respuesta fue mejor, pero tenga en cuenta que el uso del SSL por defecto en smtp_port podría no funcionar en ciertas condiciones, utilizando 465 como respuesta Thirumalai murugan ha declarado realidad fija para mí
Temitayo
2
Funciona perfectamente con XAMPP versión 7.0.15. Simplemente no olvide eliminar el punto y coma y también inicie sesión en el mismo ID de Gmail que ha configurado, luego vaya al enlace a continuación myaccount.google.com/lesssecureapps?pli=1 y Permitir aplicaciones menos seguras: ACTIVADO Ahora puede enviar el correo directamente desde el
servidor
35
En XAMPP v3.2.1 para fines de prueba, puede ver los correos electrónicos que XAMPP envía en XAMPP / mailoutput. En mi caso en Windows 8, esto no requería ninguna configuración adicional y era una solución simple para probar el correo electrónico
Y si esto no funciona, revise c:\xampp\php\php.ini, busque [mail function]y descomente la línea que menciona mailtodisk.exe. Mantenga comentadas todas las demás líneas de esta sección, excepto la mail.add_x_header.
Tim Malone,
3
Como complemento de mi comentario anterior, para las versiones más recientes de XAMPP, es posible que deba agregar manualmente la línea mailtodisk. Debería verse así:sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Tim Malone
Un apéndice adicional para comentar desde @TimMalone. Descubrí que el correo solo se escribiría en XAMPP / mailoutput si ejecuta XAMPP como administrador
sohail
@sohail: no tiene que ejecutar XAMPP como administrador, pero debe dar permiso a todos los usuarios para que escriban en la carpeta XAMPP / mailoutput (haga clic con el botón derecho en la carpeta> seguridad> todos los usuarios> permisos de edición> acceso completo)
cheppsn
@TimMalone He aplicado las dos sugerencias, pero nada en el directorio de salida de correo, incluso después de tantos intentos
Vipul Hadiya
25
Es muy simple enviar correos electrónicos en localhost o servidor local
Nota: Estoy usando el software de prueba del servidor de correo en Windows 7 de 64 bits con Xampp instalado
Simplemente descargue la herramienta de servidor de correo de prueba e instálela de acuerdo con las instrucciones dadas en su sitio web Herramienta de servidor de correo de prueba
Ahora solo necesita cambiar dos líneas debajo del php.iniarchivo
Encuentra [mail function]y elimina el punto y coma que está antes;smtp = localhost
Pon el punto y coma antes sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
No necesita cambiar nada más, pero si aún no recibe mensajes de correo electrónico que no sean para verificar SMTP port, el número de puerto debe ser el mismo.
El método anterior es para la configuración predeterminada proporcionada por el software Xampp.
Esta es una solución realmente excelente, fácil y rápida, y puedo comenzar a trabajar. Rellenar con servidores de correo localmente es una molestia cuando es solo para desarrolladores
AdheneManx
1
Gracias, también usé esto para probar mi proyecto.
Piseth Sok
19
Tiene que configurar SMTP en su servidor. Puede usar G Suite SMTP de Google de forma gratuita:
<?php
$mail =newPHPMailer(true);// Send mail using Gmailif($send_using_gmail){
$mail->IsSMTP();// telling the class to use SMTP
$mail->SMTPAuth=true;// enable SMTP authentication
$mail->SMTPSecure="ssl";// sets the prefix to the servier
$mail->Host="smtp.gmail.com";// sets GMAIL as the SMTP server
$mail->Port=465;// set the SMTP port for the GMAIL server
$mail->Username="[email protected]";// GMAIL username
$mail->Password="your-gmail-password";// GMAIL password}// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject="My Subject";
$mail->Body="Mail contents";try{
$mail->Send();
echo "Success!";}catch(Exception $e){// Something went bad
echo "Fail :(";}?>
@Vikas respuesta fue mejor, pero tenga en cuenta que el uso del SSL por defecto en smtp_port podría no funcionar en ciertas condiciones, utilizando 465 como esta respuesta ha declarado realidad fija para mí
Temitayo
Utilicé la respuesta de @Vikas pero utilicé un fragmento del tuyo, es decir, utilicé 465 como emtp_port. Buen trabajo de todos modos
Temitayo
Error fatal: la clase 'PHPMailer' no se encuentra en C: \ xampp \ htdocs \ myweb \ email_script.php en la línea 82
Shafizadeh
8
Como en mi experiencia personal, descubrí que algo muy similar a la respuesta de Vikas Dwivedi funcionará bien.
Paso 1 (archivo php.ini)
En el archivo php.ini ubicado en xampp\php\php.ini. Cambie la configuración a lo siguiente:
NB: el puerto no debe utilizarse. Tenga cuidado de que, algunas aplicaciones como Skypeutilizan los puertos predeterminados y evitan el envío de correo.
Puede evitar que Skype use el puerto 80. Está en la configuración de conexión de Skype
astroanu
0
Acabo de pasar más de una hora intentando hacer que esto funcione. para todos los que tienen el mismo problema con todas las sugerencias publicadas que no funcionan: ¡debe reiniciar Apache en su interfaz XAMPP! ¡simplemente reiniciar XAMPP no funcionará!
Intenté muchas formas de enviar un correo desde XAMPP Localhost, pero dado que XAMPP no tiene Certificado SSL, mi solicitud de correo electrónico fue bloqueada por Gmail o proveedores de servicios SMTP similares.
Luego usé MailHog para el servidor smtp local, lo que debes hacer es ejecutarlo. localhost: 1025 es para el servidor smtp, localhost: 8025 es para el servidor de correo, donde puede consultar los correos electrónicos que envió.
Aquí está mi código:
require_once "src/PHPMailer.php";
require_once "src/SMTP.php";
require_once "src/Exception.php";
$mail =newPHPMailer\PHPMailer\PHPMailer();//Server settings
$mail->SMTPDebug=3;// Enable verbose debug output
$mail->isSMTP();// Send using SMTP
$mail->Host='localhost';// Set the SMTP server to send through
$mail->Port=1025;// TCP port to connect to// $mail->Username = ''; // SMTP username// $mail->Password = ''; // SMTP password// $mail->SMTPAuth = true; // Enable SMTP authentication// $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted//Recipients
$mail->setFrom('[email protected]','Mailer');
$mail->addAddress('[email protected]','Joe User');// Add a recipient// Content
$mail->isHTML(true);// Set email format to HTML
$mail->Subject='Here is the subject';
$mail->Body='This is the HTML message body <b>in bold!</b>';
$mail->AltBody='This is the body in plain text for non-HTML mail clients';if(!$mail->Send()){
echo "Mailer Error: ". $mail->ErrorInfo;}else{
echo "Message sent!";}
Respuestas:
Puede enviar correo desde localhost con el paquete sendmail, el paquete sendmail está incorporado en XAMPP. Entonces, si está utilizando XAMPP, puede enviar fácilmente correo desde localhost.
por ejemplo, puede configurar
C:\xampp\php\php.ini
yc:\xampp\sendmail\sendmail.ini
para que gmail envíe correo.en
C:\xampp\php\php.ini
buscarextension=php_openssl.dll
y eliminar el punto y coma del comienzo de esa línea para que SSL funcione para gmail para localhost.en el archivo php.ini buscar
[mail function]
y cambiarAhora abierto
C:\xampp\sendmail\sendmail.ini
. Reemplace todo el código existente en sendmail.ini con el siguiente códigoAhora lo has hecho !! crear un archivo php con la función de correo y enviar correo desde localhost.
PD: no olvide reemplazar my-gmail-id y my-gmail-password en el código anterior. Además, no olvide eliminar las claves duplicadas si copió la configuración desde arriba. Por ejemplo, comente la siguiente línea si hay otro sendmail_path :
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
en el archivo php.iniRecuerde también reiniciar el servidor utilizando el panel de control XAMMP para que los cambios surtan efecto.
Para gmail, consulte https://support.google.com/accounts/answer/6010255 para permitir el acceso desde aplicaciones menos seguras.
fuente
En XAMPP v3.2.1 para fines de prueba, puede ver los correos electrónicos que XAMPP envía en XAMPP / mailoutput. En mi caso en Windows 8, esto no requería ninguna configuración adicional y era una solución simple para probar el correo electrónico
fuente
c:\xampp\php\php.ini
, busque[mail function]
y descomente la línea que mencionamailtodisk.exe
. Mantenga comentadas todas las demás líneas de esta sección, excepto lamail.add_x_header
.sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
Es muy simple enviar correos electrónicos en localhost o servidor local
Nota: Estoy usando el software de prueba del servidor de correo en Windows 7 de 64 bits con Xampp instalado
Simplemente descargue la herramienta de servidor de correo de prueba e instálela de acuerdo con las instrucciones dadas en su sitio web Herramienta de servidor de correo de prueba
Ahora solo necesita cambiar dos líneas debajo del
php.ini
archivo[mail function]
y elimina el punto y coma que está antes;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
No necesita cambiar nada más, pero si aún no recibe mensajes de correo electrónico que no sean para verificar
SMTP port
, el número de puerto debe ser el mismo.El método anterior es para la configuración predeterminada proporcionada por el software Xampp.
fuente
Puede probar enviar correo en su PC sin Internet
debe usar Papercut, esta sencilla aplicación para probar el envío de correo. y no necesitas configurar nada.
Simplemente ejecútelo e intente probar enviar correo:
test_sendmail.php
y verás esto:
Espero que tengas un buen día. puedes encontrarme en Youtube para más tutoriales Piseth Sok
¡Animar!
fuente
Tiene que configurar SMTP en su servidor. Puede usar G Suite SMTP de Google de forma gratuita:
Lea más sobre
PHPMailer
aquí .fuente
Como en mi experiencia personal, descubrí que algo muy similar a la respuesta de Vikas Dwivedi funcionará bien.
Paso 1 (archivo php.ini)
En el archivo php.ini ubicado en
xampp\php\php.ini
. Cambie la configuración a lo siguiente:Apague otras variables debajo
mail funciton
poniéndolas;
antes. p.ej;smtp_port=25
Paso 2 (archivo sendmail.ini)
En sendmail.ini ubicado en xampp \ sendmail \ semdmail.ini cambie a lo siguiente:
Paso 3 (código)
Cree un archivo php y use lo siguiente:
aviso
fuente
Este código se utiliza para el correo de su XAMPP localhost y su cuenta de Gmail. Este código es muy fácil y funciona para mí, pruébalo tú mismo.
A continuación, cambie el archivo php.ini
Abajo Cambiar en el archivo sendmail.ini
Por favor, escriba el código belove en su archivo PHP para enviar un correo electrónico
fuente
Debe definir un
SMTP
servidor y un puerto para esto. Todo excepto enviar correos desde hosts en vivo.Este es un enlace útil al respecto .
fuente
Acabo de pasar más de una hora intentando hacer que esto funcione. para todos los que tienen el mismo problema con todas las sugerencias publicadas que no funcionan: ¡debe reiniciar Apache en su interfaz XAMPP! ¡simplemente reiniciar XAMPP no funcionará!
fuente
Intenté muchas formas de enviar un correo desde XAMPP Localhost, pero dado que XAMPP no tiene Certificado SSL, mi solicitud de correo electrónico fue bloqueada por Gmail o proveedores de servicios SMTP similares.
Luego usé MailHog para el servidor smtp local, lo que debes hacer es ejecutarlo. localhost: 1025 es para el servidor smtp, localhost: 8025 es para el servidor de correo, donde puede consultar los correos electrónicos que envió.
Aquí está mi código:
Enlace al repositorio de MailHog Github
fuente
Además de todas las respuestas, tenga en cuenta que en el
sendmail.ini
archivo:debido a un nuevo problema de seguridad de Google, debe seguir estos pasos para crear una contraseña de aplicación para este propósito:
fuente