Foros del Web » Programando para Internet » PHP »

Usar plantilla en phpmailer

Estas en el tema de Usar plantilla en phpmailer en el foro de PHP en Foros del Web. Hola a todos como estan veran estoy usando la libreria de phpmailer en la cual quiero incluir un archivo php con la funcion file_get_contents algo ...
  #1 (permalink)  
Antiguo 05/09/2016, 12:01
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Usar plantilla en phpmailer

Hola a todos como estan veran estoy usando la libreria de phpmailer en la cual quiero incluir un archivo php con la funcion file_get_contents algo asi
Código PHP:
Ver original
  1. <?php
  2. require_once '../lib/PHPMailer/PHPMailerAutoload.php';
  3. $reporte = file_get_contents('reporte_do.php');
  4. $mail = New PHPMailer;
  5. $mail->setFrom('[email protected]','Administrador CRM');
  6. $mail->addAddress('[email protected]');
  7. $mail->Subject = 'Prueba Reporte';
  8. $mail->msgHTML($reporte);
  9. if (!$mail->send()) {
  10.     echo "Erro".$mail->ErrorInfo;
  11. }  else {
  12.     echo "Mensaje Enviado";
  13. }
pero creo que la funcion no le funciones php que tenga el archivo o alguna resultado que se muestre con php hay alguna funcion para ello o que debo hacer
  #2 (permalink)  
Antiguo 05/09/2016, 13:30
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Usar plantilla en phpmailer

Creo que te estas equivocando en la mayoria, investiga mas:

1. Esto es para leer un archivo que sube el usuario (cliente) al servidor:
Código PHP:
Ver original
  1. $reporte = file_get_contents('$_FILES["id_campo_input_file_html"]["tmp_name"]);

2.- En esta linea va una cadena que contiene la estructura de una pagina html que mostará el cuerpo de tu correo:
Código PHP:
Ver original
  1. $mail->msgHTML($cuerpo_correo);

3.- Con este código se pueden adjuntar archivos a un correo en PHPmailer:
Código PHP:
Ver original
  1. function enviar_correo($destinatarios, $mail_asunto, $mail_contendio, $from, $from_name, $archivos_adjuntos_ruta,$archivos_adjuntos_temp){
  2. $mail= new PHPMailer(); // defaults to using php "mail()"
  3. $mail->CharSet = 'UTF-8';
  4. $body= $mail_contendio;
  5. $mail->IsSMTP(); // telling the protocol to use SMTP
  6. $mail->Host = "smtp.farmaciassanasana.com.mx"; // SMTP server
  7. $mail->From = $from;
  8. $mail->FromName = $from_name;
  9. $mail->Subject = $mail_asunto;
  10. $mail->MsgHTML($body);
  11. $destinatarios=explode(",", $destinatarios);
  12. if(!empty($destinatarios)){
  13. foreach($destinatarios as $un_destinatario){
  14. $mail->AddAddress($un_destinatario); //destinatarios
  15. }
  16. }else{
  17. return false;
  18. }
  19. if(!empty($archivos_adjuntos_ruta)){
  20. foreach($archivos_adjuntos_ruta as $archivo){
  21. $mail->AddAttachment($archivo); // attachment
  22. }
  23. }
  24. if(!empty($archivos_adjuntos_temp)){
  25. foreach($archivos_adjuntos_temp as $nombrearchivo=>$contenidoArchivo){
  26. $mail->AddStringAttachment($contenidoArchivo,$nombrearch ivo,'base64');
  27. }
  28. }
  29. $mail->Timeout = 20;
  30. if($mail->Send()) {
  31. return array(true);
  32. }else {
  33. return array(false,"Mailer Error: ".$mail->ErrorInfo);
  34. }
  35. }

y aca algunos ejemplos para invocarla:
Código PHP:
Ver original
  1. $archivos_adjuntos_ruta=array($path1,path2);
  2. $archivos_adjuntos_temp=array(utf8_decode($strfile PDF)=>$strContenidoPdf,utf8_decode($strNomArch)=>$ strContenidoXml);
  3. enviar_correo($Email_destinatarios_string_separado_por_comas,$email_asunto, $mail_contendio_en_html,$correo_remitente,$nombre_remitente,array(),archivos_adjuntos_temp);//los archivos estan en variables temporales
  4. enviar_correo($Email_destinatarios_string_separado_por_comas,$email_asunto, $mail_contendio_en_html,$correo_remitente,$nombre_remitente,$archivos_adjuntos_ruta,array()) ;//los archivos estan en rutas en disco
  5. enviar_correo($Email_destinatarios_string_separado_por_comas,$email_asunto, $mail_contendio_en_html,$correo_remitente,$nombre_remitente,$archivos_adjuntos_ruta,archivos _adjuntos_temp);//ambas opciones al mismo tiempo
  #3 (permalink)  
Antiguo 05/09/2016, 13:49
 
Fecha de Ingreso: abril-2015
Mensajes: 304
Antigüedad: 9 años
Puntos: 2
Respuesta: Usar plantilla en phpmailer

Haber si entiendo toda esta parte no lo puse porque tengo otra configuración donde estoy probando me refiero a esto
Código PHP:
Ver original
  1. $mail->IsSMTP(); // telling the protocol to use SMTP
  2. $mail->Host = "smtp.farmaciassanasana.com.mx"; // SMTP server
  3. $mail->From = $from;
  4. $mail->FromName = $from_name;
  5. $mail->Subject = $mail_asunto;
por otro lado yo quería saber si la función que uso en concreto esto ojo que aquí no hay usuario que intervenga ya que el envió del mail es automatico y me refiero a esto
Código PHP:
Ver original
  1. $reporte = file_get_contents('reporte_do.php');
pero por lo que voy leyendo no es factible usarlo con esa función ya que no me trae nada de lo que ese archivo muestra, bueno de todas formas gracias si le encuentro solucion a esto lo publicare
  #4 (permalink)  
Antiguo 05/09/2016, 16:20
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 2 meses
Puntos: 11
Respuesta: Usar plantilla en phpmailer

Si quieres leer un archivo que te regresa un html para enviarlo por correo debe ser asi:
Código PHP:
Ver original
  1. //reporte_do.php
  2. function f_arma_html(){
  3.       return "<html><body>Aqui va el contenido del correo</body></html>";
  4. }
y ya en tu script va esto:
Código PHP:
Ver original
  1. include('reporte_do.php');
  2. $reporte = f_arma_html();
Y por otra parte no se si ese require se de otra versión distinta a la mia porque yo importo esto:
Código PHP:
Ver original
  1. require_once 'phpMailer/class.phpmailer.php';

Etiquetas: html, phpmailer, plantilla, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:31.