Problem with class PHPMailer

1

I am trying to configure the sending of mail with php through the PHPMailer class. When I execute the function that should send the mail I get the following error:

  

Warning: Creating default object from empty value in .......... on line   23

6

line 236 is this: $mail­->SMTPDebug = 2;

the full code of the function is this:

[email protected];
$us=Pablo;
mailActivacion($email,$us);
function mailActivacion($dir_correo, $usuario){
  require_once('../PHPMailer/class.phpmailer.php');
  //require_once('../PHPMailer/class.smtp.php');
  $mail = new PHPMailer();
  //indico a la clase que use SMTP
  $mail->IsSMTP();
  //permite modo debug para ver mensajes de las cosas que van ocurriendo
  $mail­->SMTPDebug = 2;
  //Debo de hacer autenticación SMTP
  $mail­->SMTPAuth = true;
  $mail­->SMTPSecure = "ssl";
  //indico el servidor de Gmail para SMTP
  $mail­->Host = "smtp.gmail.com";
  //indico el puerto que usa Gmail
  $mail­->Port = 465;
  //indico un usuario / clave de un usuario de gmail
  $mail­->Username = "[email protected]";
  $mail­->Password = "123456789";
  $mail­->SetFrom('[email protected]', 'Mi Nombre');
  $mail­->AddReplyTo("[email protected]","Mi Nombre");
  $mail­->Subject = "Envío de email usando SMTP de Gmail";
  $mail­->MsgHTML("Hola que tal, esto es el cuerpo del mensaje!");
  //indico destinatario
  $address = $dir_correo;
  $mail­->AddAddress($address, $usuario);
  if(!$mail­->Send()) {
    echo "Error al enviar: " . $mail­>ErrorInfo;
  } else {
    echo "Mensaje enviado!";
  }
}
    
asked by Pablo Chaco 05.05.2016 в 00:14
source

1 answer

1

Use this function:

function enviar_correo($destinatarios, $mail_asunto, $mail_contendio, $from, $from_name, $archivos_adjuntos_ruta,$archivos_adjuntos_temp){
$mail= new PHPMailer(); // defaults to using php "mail()"
$mail->CharSet = 'UTF-8';
$body= $mail_contendio;
$mail->IsSMTP(); // telling the protocol to use SMTP
$mail->Host = "tu.host.com"; // SMTP server
$mail->From = $from;
$mail->FromName = $from_name;
$mail->Subject = $mail_asunto;
$mail->MsgHTML($body);
$destinatarios=explode(",", $destinatarios);
if(!empty($destinatarios)){
foreach($destinatarios as $un_destinatario){
$mail->AddAddress($un_destinatario); //destinatarios
}
}else{
return false;
}
if(!empty($archivos_adjuntos_ruta)){
foreach($archivos_adjuntos_ruta as $archivo){
$mail->AddAttachment($archivo); // attachment
}
}
if(!empty($archivos_adjuntos_temp)){
foreach($archivos_adjuntos_temp as $nombrearchivo=>$contenidoArchivo){
$mail->AddStringAttachment($contenidoArchivo,$nombrearch ivo,'base64');
}
}
$mail->Timeout = 20;
if($mail->Send()) {
return array(true);
}else {
return array(false,"Mailer Error: ".$mail->ErrorInfo);
}
}
$archivos_adjuntos_ruta=array($path1,path2);
$archivos_adjuntos_temp=array(utf8_decode($strfile PDF)=>$strContenidoPdf,utf8_decode($strNomArch)=>$ strContenidoXml);
enviar_correo(...,array(),archivos_adjuntos_temp);//los archivos estan en variables temporales
enviar_correo(...,$archivos_adjuntos_ruta,array()) ;//los archivos estan en rutas en disco
enviar_correo(...,$archivos_adjuntos_ruta,archivos _adjuntos_temp);//ambas opciones al mismo tiempo
    
answered by 05.05.2016 в 00:22