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?
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?
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
y c:\xampp\sendmail\sendmail.ini
para que gmail envíe correo.
en C:\xampp\php\php.ini
buscar extension=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 cambiar
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Ahora abierto C:\xampp\sendmail\sendmail.ini
. Reemplace todo el código existente en sendmail.ini con el siguiente código
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
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.
Para gmail, consulte https://support.google.com/accounts/answer/6010255 para permitir el acceso desde aplicaciones menos seguras.
Para enviar correos electrónicos en Linux (con el paquete sendmail) a través de Gmail desde localhost, consulte PHP + Ubuntu Enviar correo electrónico utilizando el formulario de gmail localhost .
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
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
.
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.
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
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
y verás esto:
Espero que tengas un buen día. puedes encontrarme en Youtube para más tutoriales Piseth Sok
¡Animar!
Tiene que configurar SMTP en su servidor. Puede usar G Suite SMTP de Google de forma gratuita:
<?php
$mail = new PHPMailer(true);
// Send mail using Gmail
if($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 = "your-gmail-account@gmail.com"; // 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 :(";
}
?>
Lea más sobre PHPMailer
aquí .
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:
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
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:
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
Paso 3 (código)
Cree un archivo php y use lo siguiente:
<?php
mail($to, "subject", "body", "From: ".$from);
?>
aviso
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
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
Abajo Cambiar en el archivo sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=yourmail@gmail.com
Por favor, escriba el código belove en su archivo PHP para enviar un correo electrónico
<?php
$to = "tomail@gmail.com";
$subject = "Test Mail";
$headers = "From: from_mail@gmail.com\r\n";
$headers .= "Reply-To: replytomail@gmail.com\r\n";
$headers .= "CC: theassassin.edu@gmail.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
$addURLS = 'google.com';
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
}
$curText = 'dummy text';
if (($curText) != '') {
$message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
if(mail($to,$subject,$message,$headers))
{
echo "Mail Send Sucuceed";
}
else{
echo "Mail Send Failed";
}
?>
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 .
NB: el puerto no debe utilizarse. Tenga cuidado de que, algunas aplicaciones como
Skype
utilizan los puertos predeterminados y evitan el envío de correo.
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 = new PHPMailer\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('testtoo@testto.com', 'Mailer');
$mail->addAddress('testtoo@webbamail.com', '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!";
}
Además de todas las respuestas, tenga en cuenta que en el sendmail.ini
archivo:
auth_password = this-is- Not -your-Gmail-password
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: