Foros del Web » Programando para Internet » PHP »

enviar dos ajuntos con Mail PHP

Estas en el tema de enviar dos ajuntos con Mail PHP en el foro de PHP en Foros del Web. buen dia, he buscado ionformacion al respecto y no encuentro absolutamente nada, por lo que acudo a los expertos en el tema... resulta que estoy ...
  #1 (permalink)  
Antiguo 26/02/2016, 09:02
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 1 mes
Puntos: 1
Pregunta enviar dos ajuntos con Mail PHP

buen dia,

he buscado ionformacion al respecto y no encuentro absolutamente nada, por lo que acudo a los expertos en el tema...

resulta que estoy enviando un correo electrónico con adjunto, usando PHP Mail, la que viene con el Mercury y funciona bien; pero solo puedo enviar un adjunto, y necesito enviar almenos dos archivos... como podría modificar mi código para que se pueda???

les pongo una parte del código:

$archivo = $_POST["archivo"];
$nombrearchivo = $_POST["nombrearchivo"];


$to = [email protected];
$subject = "Arhivo $serie";
$random_hash = md5(date('r', time()));
$headers = "From: Yo <[email protected]>\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "CC: [email protected]\r\n";
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$attachment = chunk_split(base64_encode(file_get_contents($archi vo)));
ob_start(); //Turn on output buffering
?>


--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

ARCHIVO NO. <?php echo $serie; ?>
Detalle: <?php echo $detalle; ?>

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<div align='center'>

... resto del código HTML...



--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?>
//Content-Type: application/zip; name=<?php echo $archivo; ?>.zip
Content-Type: application/zip; name=<?php echo $nombrearchivo; ?>.zip
Content-Transfer-Encoding: base64
Content-Disposition: attachment

<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
//copy current buffer contents into $message variable and delete current output buffer
$message = ob_get_clean();
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
__________________
www.eris.com.mx
  #2 (permalink)  
Antiguo 26/02/2016, 09:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: enviar dos ajuntos con Mail PHP

Pues básicamente debes duplicar las cabeceras donde incluyes el attachment, no hay ciencia.

¿Por qué no mejor usaste una librearía como PHPMailer o Swiftmail?

Te hubieras ahorrado el problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/02/2016, 09:16
 
Fecha de Ingreso: agosto-2008
Mensajes: 64
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: enviar dos ajuntos con Mail PHP

hace tiempo realice algo similar

me base en esto: Aqui
  #4 (permalink)  
Antiguo 26/02/2016, 09:51
 
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: enviar dos ajuntos con Mail PHP

puedes usar una libreria llamada AttachMailer.php muy buena yo la utilizo y he llegado a enviar hasta 15 archivos adjuntos y no tengo ningun problema.
  #5 (permalink)  
Antiguo 26/02/2016, 11:42
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: enviar dos ajuntos con Mail PHP

Usa PHPMailer, los adjuntos se ponen en arreglos:
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
  #6 (permalink)  
Antiguo 26/02/2016, 17:08
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: enviar dos ajuntos con Mail PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues básicamente debes duplicar las cabeceras donde incluyes el attachment, no hay ciencia.

¿Por qué no mejor usaste una librearía como PHPMailer o Swiftmail?

Te hubieras ahorrado el problema.
listo, uff, estuve haciendo pruebas con lo que todos me indicaron, pero al final funciono lo que mencionaste de duplicar las cabeceras, pensé que se necesitaba algo más que duplicarlas, pero lo logré...

se me complico con lo de los mimes types de los adjuntos, pero a prueba y error como siempre quedo...


gracias...
__________________
www.eris.com.mx
  #7 (permalink)  
Antiguo 18/05/2016, 02:52
gdipaolo59
Invitado
 
Mensajes: n/a
Puntos:
Sonrisa Respuesta: enviar dos ajuntos con Mail PHP

Saludos tengo un problema similar con este codigo. la unica respuesta que recibo es PROBLEMA DE ENVIO nada mas...........


$pdf->Output("pdf/archivo1.pdf","F");

$file="pdf/archivo1.pdf";
$from ="[email protected]";
//$mailer= new attachMailer($from,$mail,"Inscripción ","Se adjunta Inscripción");
$mailer = new AttachMailer("[email protected]", "[email protected]", "mail sender class", "hello <b>content</b>");
$mailer->attachfile($file);
$resultado=($mailer->send()? "Enviado": "Problema al enviar");
echo($resultado);
$mailer->attachFile("pdf/archivo1.pdf");
$mailer->send() ? "envio correcto": "problema envio";

Etiquetas: html, mail, variable
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 23:00.