Código de PHP - Envio de correo mediante servidor SMTP

Imágen de perfil

Envio de correo mediante servidor SMTPgráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(29)
Actualizado el 20 de Enero del 2015 por Xavi (Publicado el 12 de Septiembre del 2009)
43.161 visualizaciones desde el 12 de Septiembre del 2009. Una media de 91 por semana
Código que muestra como enviar un correo utilizando un servidor SMTP con autenticación, ya sea el servidor de gmail, hotmail, o cualquier otro.

Versión 1
estrellaestrellaestrellaestrellaestrella(6)

Actualizado el 12 de Diciembre del 2014 (Publicado el 12 de Septiembre del 2009)gráfica de visualizaciones de la versión: Versión 1
12.264 visualizaciones desde el 12 de Septiembre del 2009. Una media de 28 por semana

Versión 2
estrellaestrellaestrellaestrellaestrella(1)

Actualizado el 16 de Diciembre del 2014 (Publicado el 12 de Diciembre del 2014)gráfica de visualizaciones de la versión: Versión 2
1.837 visualizaciones desde el 12 de Diciembre del 2014. Una media de 14 por semana

Versión 3 - Con archivo adjunto
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 13 de Enero del 2015gráfica de visualizaciones de la versión: Versión 3 - Con archivo adjunto
2.531 visualizaciones desde el 13 de Enero del 2015. Una media de 14 por semana

Versión 4 - Permite enviar el mismo correo a varios usuarios
estrellaestrellaestrellaestrellaestrella(18)

Publicado el 20 de Enero del 2015gráfica de visualizaciones de la versión: Versión 4 - Permite enviar el mismo correo a varios usuarios
26.530 visualizaciones desde el 20 de Enero del 2015. Una media de 133 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Esta versión es la misma que la versión 3, pero muestro como enviar el mismo correo a varios usuarios. Lo que hace, es recorrer un array de valores que contiene el correo y nombre de cada usuario y va enviando un correo para cada uno.

Utiliza la librería phpMailer que se incluye en el archivo comprimido
http://sourceforge.net/projects/phpmailer/

Descomprimir los archivos en una carpeta, y modificar los valores de las variables del archivo sendMail.php

Para los envíos desde hotmail o outlook, esta es la configuración (gracias a xve):
1
2
3
4
5
6
$smtp->SMTPAuth   = true;
$smtp->SMTPSecure = "tls";
$smtp->Host       = "smtp.live.com";
$smtp->Username   = "miCuenta@outlook.com";
$smtp->Password   = "miPassword";
$smtp->Port       = 25;

Para los envíos desde gmail, esta es la configuración:
1
2
3
4
5
6
$smtp->SMTPAuth   = true;
$smtp->SMTPSecure = "tls";
$smtp->Host       = "smtp.gmail.com";
$smtp->Username   = "miCuenta@gmail.com";
$smtp->Password   = "miPassword";
$smtp->Port       = 587;

Para los envíos desde yahoo, esta es la configuración:
1
2
3
4
5
6
$smtp->SMTPAuth   = true;
$smtp->SMTPSecure = "ssl";
$smtp->Host       = "smtp.mail.yahoo.com";
$smtp->Username   = "miCuenta@yahoo.com";
$smtp->Password   = "miPassword";
$smtp->Port       = 465;
  • Archivos para descargar

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios sobre la versión: Versión 4 - Permite enviar el mismo correo a varios usuarios (18)

eer
29 de Enero del 2015
estrellaestrellaestrellaestrellaestrella
Excelente aporte
Responder
Imágen de perfil
humberto
02 de Mayo del 2015
estrellaestrellaestrellaestrellaestrella
amigo puedes colocar un ejemplo completo....
Responder
dfs
17 de Junio del 2015
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Imágen de perfil
miguel
01 de Octubre del 2015
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Imágen de perfil
Hfr
01 de Diciembre del 2015
estrellaestrellaestrellaestrellaestrella
<?php require_once('../PHPMailer/_lib/class.phpmailer.php');

$correo = new PHPMailer();

$correo->IsSMTP();

$correo->SMTPAuth = true;

$correo->SMTPSecure = 'tls';

$correo->Host = "smtp.office365.com";

$correo->Port = 587;

$correo->Username = "*******";//tu corrreo

$correo->Password = "******";// tu clave

$correo->SetFrom("***********", "Mi Codigo PHP");//tu corrreo



$correo->AddAddress("hector58472@yahoo.es", "Jorge");//correo destino

$correo->Subject = "Mi primero correo con PHPMailer";//asunto

$correo->MsgHTML("HOLA COMO ESTAS <strong>HTML</strong>");//mensaje o cuerpo del correo


if(!$correo->Send()) {
echo "Hubo un error: " . $correo->ErrorInfo;
} else {
echo "Mensaje enviado con exito.";
}

?>

Fatal error: Call to undefined method PHPMailer::SetFrom() in C:\xammmp\htdocs\prueba\prueba.php on line 19

yo baje la librería y hasta el momento no he podido enviar correos
Responder
Daniel
07 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
Te quiero!!!

llevo varios dias intentando una configuración en godaddy.com ya que la función mail() no va bien en ese servidor de hosting

muchiiiiisimas gracias
Responder
Daniel
14 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
Hola de nuevo, a ver, en el sendMail.php tenemos la estructura:

# Se pueden poner tantos correos como se deseen
$mailTo=array(
"correo_1_DondeSeEnviaElMensaje@servidor.info"=>"Nombre_1 persona que recibe el correo",
"correo_2_DondeSeEnviaElMensaje@servidor.info"=>"Nombre_2 persona que recibe el correo",
"correo_3_DondeSeEnviaElMensaje@servidor.info"=>"Nombre_3 persona que recibe el correo"
);


Yo lo que quiero es mandar varios correos según una consulta mysql a varios correos que me aparecen en:

<?php do { ?>
<?php echo $row_emails_profesorado['email']; ?>
<?php } while ($row_emails_profesorado = mysql_fetch_assoc($emails_profesorado)); ?>

Son todos los correos de todos los profesores de un alumno... como puedo juntar ambos lenguajes?

Gracias!
Responder
Rosana
22 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
hola muy bueno el programa
Responder
Marlon
11 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Muy bueno me sirvio funciona perfectamente
Responder
Marisa Rodríguez
12 de Abril del 2017
estrellaestrellaestrellaestrellaestrella
Hola,

Creo que tengo algo mal, me manda este mensaje: SMTP Error: Could not connect to SMTP host.

:(

<?php
include("phpmailer.php");
$smtp=new PHPMailer();
$smtp->IsSMTP();
$smtp->CharSet="UTF-8";
$smtp->SMTPAuth = true;
$smtp->Host = "smtp.gmail.com";
$smtp->Username = "cuentaorigen";
$smtp->Password = "contraseña";
$smtp->From = "cuentaorigen@gmail.com";
$smtp->FromName = "Nombre";
$mailTo=array(
"cuenta@hotmail.com"=>"Nombre ",
"cuenta@gmail.com"=>"Nombre "
);
$smtp->WordWrap = 50;
$contenidoHTML="prueba";


$smtp->Subject="Envio de prueba utilizando un servidor SMTP";


$smtp->MsgHTML($contenidoHTML);

foreach($mailTo as $mail=>$name) {
$smtp->ClearAllRecipients();
$smtp->AddAddress($mail,$name);
if(!$smtp->Send())
{
echo "<br>Error (".$mail."): ".$smtp->ErrorInfo;
}else{
echo "<br>Envio realizado a ".$name." (".$mail.")";
}
}
?>
Responder
Nas Quevedo
27 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
Hola,

El error SMTP Error: Could not connect to SMTP host. Se produce cuando no se puede conectar con el host via SMTP. Hay que revisar que el host este correctamente escrito o usar el puerto del mismo ejemplo:

$smp->Port = 465
Responder
Juan
13 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Me ha venido perfecto
Responder
Cesar
27 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Tengo un problema, me sale este error:
Fatal error: Class 'PHPMailer' not found in...
y la línea que me señala es esta: $mail = new PHPMailer();

La clase PHPMailer la tengo así:
require_once('class.PHPMailer.php');
require_once('class.SMTP.php');

La verdad no se porque no funciona... Gracias por su ayuda.
Responder
Imágen de perfil
Xavi
27 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Hola Cesar, si los nombres de los archivos no los has modificado, el archivo se llama "phpmailer.php", y tu tienes puesto "class.PHPMailer.php"
Puede ser ese el problema?
Responder
Cesar Rodríguez
27 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Hola, deje todo tal cual esta en los archivos, pero me sale esto:

Fatal error: Class 'PHPMailer' not found in /home1/xxxxxxt/public_html/pruebas/sendMail.php on line 8

en la línea 8 tengo esto:
$smtp=new PHPMailer();

No se como ponerlo a funcionar..... Gracias !
Responder
Imágen de perfil
Xavi
28 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Revisa que en la misma carpeta este el archivo phpmailer.php que es donde esta la clase PHPMailer()
Responder
Cesar Rodriguez Cruz
30 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Hola, si, todo esta en la misma carpeta.. utilice este código en otro servidor y funciono sin problema, cómo puedo comprobarle al Hostign que el problema es de ellos?

Saludos
Responder
cesar
18 de Junio del 2018
estrellaestrellaestrellaestrellaestrella
Hola tengo el siguiente mensaje

Error (mail@server.net): Language string failed to load: tls
SMTP server error: F
Responder

Comentar la versión: Versión 4 - Permite enviar el mismo correo a varios usuarios

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s1884  
Revisar política de publicidad