PHP - enviar correos phpmailer

   
Vista:

enviar correos phpmailer

Publicado por ferley (13 intervenciones) el 06/02/2015 00:01:56
buenas tardes

aprecio vuestra ayuda nuevamente

tengo en mi base de datos una tabla llamada registro la cual contiene el nombre y el correo del usuario
lo que quiero es mandar un correo a todos los usuarios de mi tabla.

tengo el siguiente codigo php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
session_start();
include ('conexion.php');
$asunto=$_POST['asunto']
$correo=$_POST['correo'];
require "phpmailer/class.phpmailer.php";
$resul=mysql_query("select * from usuario where estado='1'") or die(mysql_error());
while ($f=mysql_fetch_array($resul)) {
	$mail = new PHPMailer;
	$mail->Host ="mail.servidor.co";
	$mail->From="admin@cuenta.co";
	$mail->FromName="Administrador";
	$mail->Subject="$asunto";
	$mail->addAddress=($f['email'],$f['nombre']);
	$mail->MsgHTML($correo);
 
	if ($mail->send()) {
		?>
			<SCRIPT LANGUAGE='javascript'>
				location.href = 'user.php';
			</SCRIPT>
		<?php
	} else {
		echo "error";
	}
}
?>

al ejecutar el codigo la pagina me queda en blanco no me muestra error y tampoco me envia los correos

gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

enviar correos phpmailer

Publicado por zendi (824 intervenciones) el 06/02/2015 00:15:56
hola. ¿Probaste el codigo que una vez te envié por el post anterior, uno que funciona con phpmailer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

enviar correos phpmailer

Publicado por ferley (13 intervenciones) el 06/02/2015 18:04:58
Buenas tarde zendi ya intente con el codigo que me diste y no funciona no llegan los correos

este es el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start();
include ('conexion.php');
require("phpmailer/class.phpmailer.php");
require("phpmailer/class.smtp.php");
$de="admin@sisfec.co";
$asunto=$_POST['asunto']
$correo=$_POST['correo'];
$smtp=new PHPMailer();
$smtp->IsSMTP();
$smtp->CharSet="UTF-8";
//$smtp->SMTPDebug = 1;  
$smtp->SMTPAuth = true; // enable SMTP authentication
$smtp->SMTPSecure = "tls";
$smtp->Host = "smtp.sisfec.co";
// sets MAIL as the SMTP server
$smtp->Username = "admin@sisfec.co"; //tu cuenta de correos; es un ejemplo
// MAIL username
$smtp->Password = "*********"; //tu contraseña
$smtp->Port = 587;
# datos de quien realiza el envio 
$smtp->From = "admin@sisfec.co";
// from mail 
$smtp->FromName = "Administrador";
$smtp->Body = "$correo";
$smtp->WordWrap = 50;
$smtp->Timeout=30;
$smtp->IsHTML(true);
$smtp->MsgHTML("$correo");
$mailto=mysql_query("select * from registro_niif where estado='1'");
while ($f=mysql_fetch_array($mailto)) {
	$name=$f['nombre'];
	$email=$f['email'];
	$smtp->ClearAllRecipients();
	$smtp->AddAddress($email,$name);
 
	if (!$smtp->send()) {
		echo "enviado";
	} else {
		echo "error";
	}
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

enviar correos phpmailer

Publicado por zendi (824 intervenciones) el 06/02/2015 23:32:56
hola ferley, toma en cuenta lo que dice Xve, utiliza phpmailer es lo mejor te lo digo por experiencia, y entiendo tu premura, olvidate del mail(), haz una cosa en el codigo que te envié suplanta el query tuyo
1
$mailto=mysql_query("select * from registro_niif where estado='1'");
por el ejemplo que tengo en mi codigo.
Te envio nuevamente el codigo y analizalo.
y nos comentas por favor
un consejo humilde: sigue las sugerencias y veras que lo logras
Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];
$asunto = $_POST["asunto_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$destino = $_SERVER['DOCUMENT_ROOT']."/".$_FILES["archivo_fls"]["name"];
//echo $_SERVER['DOCUMENT_ROOT'];
$mensaje = $_POST["mensaje_txa"];
if(move_uploaded_file($archivo,$destino))
{
	$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
//	$smtp->SMTPDebug = 1; 
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server 
	$smtp->Username = "tucuenta de correo";
	// MAIL username
	$smtp->Password = "la contraseña de tu correo";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "tucuenta de correo";
	// from mail 
	$smtp->FromName = "tu nombre";
	// from mail name # Indicamos la dirección donde enviar el mensaje 
    $smtp->Subject = $asunto;
    $smtp->Body = $mensaje;
	$smtp->WordWrap = 50;
	$smtp->Timeout=30;
	$smtp->IsHTML(true);
	$smtp->MsgHTML("mensaje");
	$smtp->AddAttachment($destino, $_FILES["archivo_fls"]["name"]);
        $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=movilnet");
       /*creo el array o query que debe traer tanto el nombre como la cuenta de correos*/
    $mailTo = "SELECT nombres,cta_correo FROM propietarios";///aqui va tu query no el mio 
    $mailTo = @pg_query($connect,$mailTo);
while($select3 = @pg_fetch_array($mailTo))
{
      $name = $select3['nombres'];
	  $mail = $select3['cta_correo'];
      $smtp->ClearAllRecipients();
      $smtp->AddAddress($mail,$name);
 
   if (!$smtp->Send())
      {
         $respuesta ="El mensaje no se pudo enviar";
         $respuesta .="Error: " .$mail->ErrorInfo;
	  }
	  else
	  {
    	 $respuesta ="El mensaje ha sido enviado a todos los Propietarios";
	  }
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <style>
  form { margin: 1em auto; text-align: center; }
   span{ color: #F60; font-size: 1.5 em; } 
   </style>
</head>
<body> <b>
<?php echo $respuesta;?>
</b>
<form name="mail_frm" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]?>">
De:<input type="text" name="de_txt" /> <br/> <br/>
<!--Para:<input type="text" name="para_txt" /> <br/> <br/> 
-->Asunto:<input type="text" name="asunto_txt" /> <br/> <br/> 
Adjuntar Archivo: <input type="file" name="archivo_fls" /> <br/> <br/> 
Mensaje:<br /><textarea name= "mensaje_txa"/> </textarea> <br/> <br/> 
  <input type="submit" name="enviar_btn" value="Enviar"/><br/> 
  </form> 
</body> 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

enviar correos phpmailer

Publicado por xve (5516 intervenciones) el 06/02/2015 16:10:55
Lo he comentado varios veces en estos foros... la instrucción mail() no es garantía de que lleguen los correos, ya que pueden no utilizar un servidor SMTP real, y la mayoría de programas de antispam lo primero que revisan es que se envié desde la IP del servidor de correo del dominio que se utiliza para el envió.

Para que te hagas una idea, los correos enviados con mail() nunca pasan el control antispam de nuestros servidores de correo, ya que utilizamos listas grises, que quiere decir que solicitamos confirmación al servidor SMTP del dominio que envía dicho mensaje.
Tal como te dice zendi, tienes que utilizar un servidor SMTP, y una manera muy sencilla es con phpmailer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar