Foros del Web » Programando para Internet » PHP »

Enviar varios adjuntos con class.phpmailer

Estas en el tema de Enviar varios adjuntos con class.phpmailer en el foro de PHP en Foros del Web. No consigo mandar mas de un adjunto, gracias Código HTML: <!-- print_r() Imprime un array --> <!DOCTYPE html> <html class= "no-js" > <head> <meta charset= ...
  #1 (permalink)  
Antiguo 08/10/2013, 05:31
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Enviar varios adjuntos con class.phpmailer

No consigo mandar mas de un adjunto, gracias

Código HTML:
<!-- print_r() Imprime un array -->
<!DOCTYPE html>
<html class="no-js">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<title></title>
	<meta name="description" content="">
	<meta name="viewport" content="width=device-width">
<!--
	<link rel="stylesheet" href="css/bootstrap.min.css">
	<link rel="stylesheet" href="css/bootstrap-theme.min.css">
	<link rel="stylesheet" href="js/vendor/bootstrap.min.js">
-->
	<link rel="stylesheet" href="http://getbootstrap.com/dist/css/bootstrap.css">
	<link rel="stylesheet" href="http://getbootstrap.com/dist/css/bootstrap-theme.css">
	<script rel="stylesheet" href="http://getbootstrap.com/dist/js/vendor/bootstrap.js"></script>

	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
	<script>window.jQuery || document.write('<script src="front/js/libs/jquery-1.8.2.min.js"><\/script>')</script>

	<style type="text/css">
		body {
			margin: 50px 0;
		}
	</style>
</head>
<body>

	<div class="container">
		<div class="panel panel-default"><div class="panel-heading text-center">ENVIAR CORREOS DESDE PHP</div><div class="panel-body text-center">
			<?php if (!extract($_POST)) { ?>
				<form method="post" enctype="multipart/form-data">

					<div class="input-group col-sm-6" style="padding:0;">
						<span class="input-group-addon" style="border-bottom-left-radius:0;">
							<span class="glyphicon glyphicon-font"></span>
						</span>
						<input type="text" class="form-control" style="border-radius:0;" placeholder="Asunto:" name="asunto" title="Asunto" required>
					</div>

					<div class="prettyFile" style="padding:0;">
						<!--input type="file" name="archivo" multiple="multiple" style="display:none;"-->
						<input type="file" name="archivo[]" multiple="multiple" style="display:none;">
						<div class="input-group">
						<span class="input-group-addon" style="border-radius:0;">
							<span class="glyphicon glyphicon-paperclip"></span>
						</span>
						<input type="text" class="form-control" style="border-radius:0;" placeholder="Adjuntos:" name="adjuntos" title="Adjuntos" required>
						<span class="input-group-btn">
								<button class="btn btn-default" type="button" style="border-bottom-right-radius:0; width:80px;">Adjuntar</button>
							</span>
						</div>
					</div>

					<div class="col-sm-12" style="padding:0;">
						<textarea class="form-control" style="border-radius:0; height:150px; resize:none" placeholder="Mensaje:" name="mensaje" required></textarea>
					</div>

					<div class="input-group col-sm-6" style="padding:0;">
						<span class="input-group-addon" style="border-top-left-radius:0;">
							<span class="glyphicon glyphicon-user"></span>
						</span>
						<input type="text" class="form-control" style="border-radius:0;" placeholder="Nombre:" name="nombre" title="Arturo" required>
					</div>

					<div class="col-sm-6" style="padding:0;">
						<div class="input-group">
						<span class="input-group-addon" style="border-radius:0;">
							<span class="glyphicon glyphicon-envelope"></span>
						</span>
								<input type="email" class="form-control" style="border-radius:0;" placeholder="Email:" name="email" title="[email protected]" required>
								<span class="input-group-btn"-->
									<button type="submit" class="btn btn-default" style="border-left:0; border-top-right-radius:0; width:80px;">Enviar</button>
								</span>
						</div>
					</div>
				</form>
			<?php } else {

				require 'class.phpmailer.php';//Lo primero es incluir la clase en vuestro php
				//require 'class.smtp.php';
				$mail = new phpmailer();//Instanciamos un objeto de la clase phpmailer
				$mail -> PluginDir = "";//Indicamos a la clase phpmailer donde se encuentra la clase smtp
				$mail -> Mailer = "smtp";//Indicamos que vamos a conectar por smtp
				$mail -> Host = "ssl://smtp.gmail.com";//Servidor smtp de gmail. Como ves usamos cifrado ssl
				$mail -> Port = "465";//Puerto de gmail 465
				$mail -> SMTPAuth = true;// Enable SMTP authentication

				//Le indicamos que el servidor smtp requiere autenticación
				$mail -> Username = '***@gmail.com';// SMTP username
				$mail -> Password = '***';// SMTP password
				$mail -> SMTPSecure = 'ssl';// Enable encryption, 'ssl' also accepted

				$mail -> From = $email;
				$mail -> FromName = 'Quico';

				$mail -> addAddress($email, $nombre);
				$mail->addAddress('***@gmail.com', 'Quico');// Añadir más destinatarios
				$mail->addReplyTo('***@gmail.com', 'Quico');//Añadir dirección de respuesta
				//$mail->addCC('[email protected]');//Añadir CC
				//$mail->addBCC('[email protected]');//Añadir CCO
				$mail -> Subject = $asunto;// Asunto, cuerpo del mensaje y cuerpo plano sin formato
				$mail -> Body = $mensaje;//puede incluir html, podéis cogerlo de un form...
				//$mail -> AltBody = 'Cuerpo del mensaje en texto plano';

				$mail->addAttachment($_FILES['archivo']['tmp_name'], $_FILES['archivo']['name']);// Añadir adjuntos
				//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');// Añadir adjuntos

				$mail->isHTML(true);//Indicar el formato del correo

			?>
				<div class="row">
					<div class="col-sm-offset-2  col-sm-8">
						<form method="post">
							<div class="input-group">
								<span class="input-group-addon">
									<?php

										//Envio
										if (!$mail -> send()) {
											echo 'No se pudo mandar el mensaje. ';
											echo 'Mailer Error: ' . $mail -> ErrorInfo;
											//exit;
										} else {
											echo 'El mensaje ha sido enviado.';
										}

									?>
								</span>
								<button type="submit" class="btn btn-default form-control">Volver</button>
							</div>
						</form>
				 </div>
				</div>
			<?php } ?>
			</div>
		</div>
	</div>

	<script type="text/javascript">
		// Pretty file
		if ($('.prettyFile').length) {
				$('.prettyFile').each(function() {
						var pF          = $(this),
								fileInput   = pF.find('input[type="file"]');
		 
						fileInput.change(function() {
								// When original file input changes, get its value, show it in the fake input
								var files = fileInput[0].files,
										info  = '';
								if (files.length > 1) {
										// Display number of selected files instead of filenames
										info     = files.length + ' files selected';
								} else {
										// Display filename (without fake path)
										var path = fileInput.val().split('\\');
										info     = path[path.length - 1];
								}
		 
								pF.find('.input-group input').val(info);
						});
		 
						pF.find('.input-group').click(function(e) {
								e.preventDefault();
								// Make as the real input was clicked
								fileInput.click();
						})
				});
		}
	</script>

</body>
</html> 
  #2 (permalink)  
Antiguo 08/10/2013, 07:55
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Enviar varios adjuntos con class.phpmailer

debes usar un ciclo para recorrer el array de $_FILES, dicha función no espera múltiples parámetros, consulte su documentación
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/10/2013, 08:04
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar varios adjuntos con class.phpmailer

Hola:

Veo que tienes código javascript/jquery... ¿no estarás dependiendo de la librería para la subida...?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 09/10/2013, 01:07
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Enviar varios adjuntos con class.phpmailer

Gracias por responder

Hola "caricatos", En el ejemplo subido con jQuery/JavaScript lo uso para ocultar un <input type="file" multiple> y poder usarlo mediante un <input type="text"><a> así puedo aplicarle CSS para dejarlo al estilo de la plantilla de Bootstrap, evitando de paso que se muestre diferente en "google chrome"

Hola "maycolalvarez", calculo que como bien dices tengo que recorrer un array, pero aun no se como se hace

Etiquetas: adjuntos, html, select
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 04:48.