Foros del Web » Programando para Internet » PHP »

Problemas phpmailer - ficheros adjunto.

Estas en el tema de Problemas phpmailer - ficheros adjunto. en el foro de PHP en Foros del Web. Estoy tratando de hacer un script en php para que los usuarios me manden un mail con información y posibilidad de enviar una imagen. La ...
  #1 (permalink)  
Antiguo 19/02/2011, 16:54
Avatar de Zarta  
Fecha de Ingreso: febrero-2004
Mensajes: 203
Antigüedad: 15 años, 9 meses
Puntos: 2
Problemas phpmailer - ficheros adjunto.

Estoy tratando de hacer un script en php para que los usuarios me manden un mail con información y posibilidad de enviar una imagen.

La cosa es, que el mail me llega, y el adjunto también, pero no en formato jpg. El fichero me llega con el nombre: noname. Si lo trato de renombrar a una imagen, no me muestra nada. Si lo abro el block de notas, empieza con el siguiente texto:

name="phpSBPw94"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="phpSBPw94"

El codigo en concreto es el siguiente, haber si me podeis echar una mano:

Código PHP:
                    require_once('includes/phpmailer.inc.php');
                    
                    
// extraemos los valores del formulario
                    
$foto $_FILES['adjunto'];

                    
$allowedExtensions = array("jpg""jpeg""gif""png");
                    
$tipo end(explode('.',$foto[name]));
                    if(
in_array($tipo,$allowedExtensions)) {
                        
$mail = new PHPMailer();
                        
$mail->Host "localhost";
                        
$mail->From $_POST["email"];
                        
$mail->FromName "Formulario Opinio Cliente.".$_POST["izena"];
                        
$mail->Subject "Formulario Opinio Cliente.";
                        
$mail->AddAddress('[email protected]');
                        if (
$foto != 'none') {
                            
$mail->AddAttachment($foto[tmp_name]."/".$foto[name],$foto[name]);
                        }
                        
//Estoy recibiendo el formulario, compongo el cuerpo
                        
$cuerpo "Formulario enviado\n";
                        
$cuerpo .= "Izena: " $_POST["izena"] . "\n";
                        
$cuerpo .= "Email: " $_POST["email"] . "\n";
                        
$cuerpo .= "Sarrera: " $_POST["f_est"] . "\n";
                        
$cuerpo .= "Mezua: " $_POST["mezua"] . "\n";
                        
$mail->Body $cuerpo;
                        
$mail->IsHTML(true);
                        
$mail->Send(); 
__________________
apt-get remove window$
urpme window$
  #2 (permalink)  
Antiguo 19/02/2011, 18:32
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 3 meses
Puntos: 416
Respuesta: Problemas phpmailer - ficheros adjunto.

Código PHP:
Ver original
  1. $mail->AddAttachment($foto[tmp_name]."/".$foto[name],$foto[name]);

La forma en la que pasas el archivo esta mal, para que pones el / y luego concatenas el otro archivo?

Solo pon:
Código PHP:
Ver original
  1. $mail->AddAttachment($foto['tmp_name'],$foto['name']);
  #3 (permalink)  
Antiguo 21/02/2011, 06:10
Avatar de Zarta  
Fecha de Ingreso: febrero-2004
Mensajes: 203
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Problemas phpmailer - ficheros adjunto.

Ya lo intente sin concatenar, y tampoco me funciona. No se que puede ser que esté pasando.

Pongo todo el código, por si ves algo que esté mal:

Código PHP:
            <? if (!$_POST){ ?> 
            <form action="formulario.php" method=post enctype="multipart/form-data" name="form1">
                <table width="600" border="0" cellspacing="0" cellpadding="4">
                    <tr>
                        <td width="191" align="right" valign="top">Nombre:</td>
                        <td width="5">&nbsp; </td>
                        <td width="380"><input type=text name="izena" size=25></td>
                    </tr>
                    <tr>
                        <td width="191" align="right" valign="top">Email:</td>
                        <td width="5">&nbsp; </td>
                        <td width="380"><input type=text name="email" size=30></td>
                    </tr>
                    <tr>
                        <td width="191" align="right" valign="top">Fecha Estancia:</td>
                        <td width="5">&nbsp; </td>
                        <td width="380"><input type=text id="date1" onClick="popUpCalendar(this, form1.date1, 'dd/mm/yyyy');" name="f_est" size=10></td>
                    </tr>
                    <tr>
                        <td width="191" align="right" valign="top">Adjunto:</td>
                        <td width="5">&nbsp; </td>
                        <td width="380"><input type="file" name="adjunto" id="adjunto"></td>
                    </tr>
                    <tr>
                        <td width="191" align="right" valign="top">Opinión:</td>
                        <td width="5">&nbsp; </td>
                        <td width="380"><textarea name="mezua" cols=32 rows=6></textarea></td>
                    </tr>
                </table>
                <input type=submit value="Enviar">
            </form>
            <?
                
}else{
                    require_once(
'includes/phpmailer.inc.php');
                    
                    
// extraemos los valores del formulario
                    
$foto $_FILES['adjunto'];

                    
$allowedExtensions = array("jpg""jpeg""gif""png");
                    
$tipo end(explode('.',$foto[name]));
                    if(
in_array($tipo,$allowedExtensions)) {
                        
$mail = new PHPMailer();
                        
$mail->Host "localhost";
                        
$mail->From $_POST["email"];
                        
$mail->FromName "Formulario Opinio Cliente.".$_POST["izena"];
                        
$mail->Subject "Formulario Opinio Cliente.";
                        
$mail->AddAddress('[email protected]');
                        if (
$foto != 'none') {
                            
$mail->AddAttachment($foto[tmp_name],$foto[name]);
                        }
                        
//Estoy recibiendo el formulario, compongo el cuerpo
                        
$cuerpo "Formulario enviado\n";
                        
$cuerpo .= "Izena: " $_POST["izena"] . "\n";
                        
$cuerpo .= "Email: " $_POST["email"] . "\n";
                        
$cuerpo .= "Sarrera: " $_POST["f_est"] . "\n";
                        
$cuerpo .= "Mezua: " $_POST["mezua"] . "\n";
                        
$mail->Body $cuerpo;
                        
$mail->IsHTML(true);
                        
$mail->Send();
                        
                        
//doy las gracias por el envío
                        
echo "<br><br><br><p>Gracias por rellenar el formulario. La información se ha enviado correctamente.</p>";
                    }else{
                        echo 
"<br> El fichero introducido no está permitido.";
                    }
                }
            
?>
Es como si codificara mal o no se, ya que el fichero me lo envio, pero con nombre nombre nomame. Alguna idea?
__________________
apt-get remove window$
urpme window$
  #4 (permalink)  
Antiguo 21/02/2011, 06:15
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 9 años, 9 meses
Puntos: 14
Respuesta: Problemas phpmailer - ficheros adjunto.

Cita:
Iniciado por Zarta Ver Mensaje
Ya lo intente sin concatenar, y tampoco me funciona. No se que puede ser que esté pasando.

Pongo todo el código, por si ves algo que esté mal:

[PHP]
$mail->AddAttachment($foto[tmp_name],$foto[name]);


$mail->AddAttachment($foto[tmp_name],$foto[name],"base64");
  #5 (permalink)  
Antiguo 21/02/2011, 06:40
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 10 años, 4 meses
Puntos: 20
Respuesta: Problemas phpmailer - ficheros adjunto.

Mirate esto, a mi me sirvio en su tiempo

http://www.webcheatsheet.com/PHP/sen...attachment.php
  #6 (permalink)  
Antiguo 21/02/2011, 06:59
Avatar de Zarta  
Fecha de Ingreso: febrero-2004
Mensajes: 203
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Problemas phpmailer - ficheros adjunto.

Cita:
Iniciado por AdrianSeg Ver Mensaje

$mail->AddAttachment($foto[tmp_name],$foto[name],"base64");

Nada, ha he probado poniendo "base64" y me sigue enviando el fichero como noname sin extensión y con la siguiente información codificada dentro:

Código:
name="phpiKyyzT"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="phpiKyyzT"

iVBORw0KGgoAAAANSUhEUgAAAgYAAAEhCAIAAACLHP/kAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7F0FeBtH2p6Vg2Y74DAzOOBwQw00
SZumTVPm9tre9e9de3dtr9wkDbMTO4mZmZkFtiRLZmZmh9sUg/7fkWxLtmTHaR2ePPso69Xs7Oy7
o3n3YyLJrYpNKYlJLcwoa0wruhQnrubLS2PlZTGy8rjsSmFGaWxyOj89R5xdI0ytTEgpiZIWx8uq
RKl1yZkNAcKMqJRiYXZ9jLwmLrU+Kq0yMq0af+LbaFllTEqFMLVaklqdlFKWlFrFT68SZVSLsmrF
uU2S7EZxVpNAXoOuJFkNOC7MrMMmSK3GcWFGE9rI8s5Jc87hT0l2szSnKb30d1nB5bTCX6rqWsQ5
F9/9/vCkd1bvcPCLEzaklNyQl7cIi24Ii1sSim+Is69L8q4LC64KCv/gF1wRFlwXFd6QFrWIS1rE
hTdFhS3YEotu4k9pCT5vJhXfwI60rEW5ScpuJFdguy6vuplS3SKrpPuy8mvp5TfSi29iy6xswZZW
Voy a mirar tu enlace w0rldart, haber si encuentro la solución.
__________________
apt-get remove window$
urpme window$
  #7 (permalink)  
Antiguo 21/02/2011, 07:11
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 9 años, 9 meses
Puntos: 14
Respuesta: Problemas phpmailer - ficheros adjunto.

Prueba imprimir por pantalla esto:


<?php

echo "".$foto['tmp_name']."";

echo "".$foto['name']."";

?>

A ver si es correcto
  #8 (permalink)  
Antiguo 21/02/2011, 07:35
Avatar de Zarta  
Fecha de Ingreso: febrero-2004
Mensajes: 203
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Problemas phpmailer - ficheros adjunto.

Cita:
Iniciado por AdrianSeg Ver Mensaje
Prueba imprimir por pantalla esto:


<?php

echo "".$foto['tmp_name']."";

echo "".$foto['name']."";

?>

A ver si es correcto

$foto['tmp_name'] => /tmp/phpHmU5p8
$foto['name] => S103203.jpg

eso es lo que me saca.
__________________
apt-get remove window$
urpme window$
  #9 (permalink)  
Antiguo 21/02/2011, 12:16
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 10 años, 4 meses
Puntos: 20
Respuesta: Problemas phpmailer - ficheros adjunto.

Entonces la foto la "sube" bien, es cosa del envio.
  #10 (permalink)  
Antiguo 21/02/2011, 13:01
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 9 años, 9 meses
Puntos: 14
Respuesta: Problemas phpmailer - ficheros adjunto.

Sigo creyendo que el error está en las rutas:

Código PHP:
Ver original
  1. $mail->AddAttachment($foto[tmp_name]."/",$foto[name]);
  #11 (permalink)  
Antiguo 21/02/2011, 13:49
Avatar de Zarta  
Fecha de Ingreso: febrero-2004
Mensajes: 203
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Problemas phpmailer - ficheros adjunto.

Cita:
Iniciado por AdrianSeg Ver Mensaje
Sigo creyendo que el error está en las rutas:

Código PHP:
Ver original
  1. $mail->AddAttachment($foto[tmp_name]."/",$foto[name]);
Si ya he modifizado el codigo como me decias. Podria ser tema del server. Voy a tratar de hacer la prueba en una maquina virtual.
__________________
apt-get remove window$
urpme window$
  #12 (permalink)  
Antiguo 22/02/2011, 04:20
Avatar de Zarta  
Fecha de Ingreso: febrero-2004
Mensajes: 203
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Problemas phpmailer - ficheros adjunto.

Solucionado, el tema es que estaba trabajando con una versión vieja del phpmailer. He bajado la última versión y funciona perfectamente. La version que tenía era para php4 y mi hosting tieen php5.

Gracias!!
__________________
apt-get remove window$
urpme window$
  #13 (permalink)  
Antiguo 22/02/2011, 14:06
 
Fecha de Ingreso: junio-2009
Ubicación: Madrid
Mensajes: 402
Antigüedad: 10 años, 4 meses
Puntos: 20
Respuesta: Problemas phpmailer - ficheros adjunto.

Cita:
Iniciado por Zarta Ver Mensaje
Solucionado, el tema es que estaba trabajando con una versión vieja del phpmailer. He bajado la última versión y funciona perfectamente. La version que tenía era para php4 y mi hosting tieen php5.

Gracias!!
Estas cosas pasan siempre, por eso yo siempre trato de mirar primero la version de la aplicacion con que voy a trabajar.

salu2
  #14 (permalink)  
Antiguo 18/07/2011, 18:54
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Problemas phpmailer - ficheros adjunto.

Hola hola!

Revisando los comentarios llegue a realizar esto en mi codigo...

Sustitui primero la version de phpmailer v2.0 por v5.1 y en el codigo agregue esto...

$Extencion = '.pdf';
$Nombre_Archivo = 'document.pdf';
$Archivo = 'documento';
$mail->AddAttachment('PDFS/'.$Nombre_Archivo, $Archivo.$Extencion);

Espero les sirva!

Se que hay un exceso de codigo pero ps asi lo hice y funciono! jajaja..

Saludos!

Etiquetas: ficheros, phpmailer, adjuntos
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

SíEste tema le ha gustado a 1 personas




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