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(23)
Actualizado el 20 de Enero del 2015 por Xavi (Publicado el 12 de Septiembre del 2009)
30.574 visualizaciones desde el 12 de Septiembre del 2009. Una media de 77 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
11.932 visualizaciones desde el 12 de Septiembre del 2009. Una media de 35 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.610 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
967 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(12)

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
16.066 visualizaciones desde el 20 de Enero del 2015. Una media de 126 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;

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 (12)

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

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

http://lwp-l.com/s1884