Foros del Web » Programando para Internet » PHP »

Archivos Adjuntos en linea

Estas en el tema de Archivos Adjuntos en linea en el foro de PHP en Foros del Web. Hi chicos, tengo un problemita, desde hace algunas semanas eh tratando de averiguar por el buscador y no he encontrado la respuesta, haber si me ...
  #1 (permalink)  
Antiguo 06/01/2005, 10:26
 
Fecha de Ingreso: enero-2005
Mensajes: 4
Antigüedad: 12 años, 11 meses
Puntos: 0
Sonrisa Archivos Adjuntos en linea

Hi chicos, tengo un problemita, desde hace algunas semanas eh tratando de averiguar por el buscador y no he encontrado la respuesta, haber si me pueden hechar una manita, se los agradeceria mucho. Ok. Es lo siguiente: Tengo el codigo en PHP para enviar una archivo adjunto .swf con las especificaciones MIME, pero necesito que se vea en linea, el archivo llega a su destinatario pero no en linea. Por ahí leí que solo tenia que cambiar attachment por inline pero no me funciono .

$adj1 .="Content-Disposition: inline; filename=\"promo_ITSUR.swf\"".$UN_SALTO;

¡Gracias!
  #2 (permalink)  
Antiguo 06/01/2005, 11:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Puedes usar la classe:

PHP Mailer
http://phpmailer.sourceforge.net

Una de sus funcionalidades es la de poder generar un e-mail con un archivo como adjunto o incrustrarlo dentro de la llamada de tu página HTML (y su tag de imagen) donde corresponada .

Un saludo,
  #3 (permalink)  
Antiguo 06/01/2005, 12:01
 
Fecha de Ingreso: enero-2005
Mensajes: 4
Antigüedad: 12 años, 11 meses
Puntos: 0
Hi Cluster:

Cheque la pagina, lo que entendí es que tengo que configurar el protocolo SMPT para poder hacer buen uso de las cabeceras del MIME, pero resulta que estoy trabajando bajo el ambiente de windows y linux por lo que creo no debería éste ser impedimento para que se vea el archivo .swf en linea cuando me lo mando a mi correo.

¿De todos modos de configurar este protocolo?
  #4 (permalink)  
Antiguo 06/01/2005, 12:45
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Es que es raro que acepte un swf dentro de un mensaje de correo, aún con el código... A menos que puedas tu hacerlo...
  #5 (permalink)  
Antiguo 06/01/2005, 14:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yuriria ... no, esa classe (PHP Mailer) te permite enviar un e-mail con bastante más opciones que mail() de PHP original (sin más) .. pero no sólo lo hace vía SMTP directo .. puede usar mail() de PHP (y hasta sendmail si lo usas ...directo).

Tu decides que usar para enviar el e-mail: la función mail() de PHP, SMTP directo o "sendmail". Si en tu servidor; no sé si linux o windows .. en realidad eso da igual. Si usas SMTP directo .. le indicas ahí la IP de tu servidor SMTP (que si es la misma que corre PHP .. puede ser "localhost") .. y si no quieres complicarte .. le dices que quieres usar mail() de PHP con la configuración que este use (que al fin y al cabo es lo mismo .. )

Ahora .. en tu caso concreto .. lo que no indicas el código completo que usas para "incrustrar" tu archivo en tu e-mail .. tanto del código HTML que va a llamar a tu .swf que debes adjuntar al e-mail .. como del PHP que va a componer todas las cabeceras del mail con sus formatos MIME y demás para "incrustrar" y definir un e-mail multiparte (HTML+tus archivos) y las referencias "internas" a este .. De hecho te he recomendado "PHP Mailer" por qué todo eso ya lo hace esa classe, tu sólo debes usar el método que en la documentación se indica y listo .. te olvidas de todo esa "teoría". (que por otra parte no está de más conocer el "procedimiento" pero de ahí a re-inventar la rueda en muchos casos no es necesario, como este creo yo).

Un saludo,
  #6 (permalink)  
Antiguo 06/01/2005, 17:45
 
Fecha de Ingreso: enero-2005
Mensajes: 4
Antigüedad: 12 años, 11 meses
Puntos: 0
Aahhaaaaaaaaaa, ahora te entiendo mejor, voy a ponerne a darle una repasada al "sendmail". Gracias por explicarme. sorry son muy novata. Este es el codigo que utilizo para enviar el mail con el archivo adjunto.


<?
header("Location: http://www.itsur.edu.mx/inicio.php" );

//Checa si el e-mail es correcto.
function emailOK($str) {
//Check empty
if(empty($str)) return false;

//Check for @
if(!ereg("@",$str)) return false;

//Check for at least 1 dot
if(!ereg("\.",$str)) return false;

//Get a user and a host
list($user, $host) = explode("@", $str);

//Make sure we have a user and host
if((empty($user)) || (empty($host))) return false;

//These characters are not allowed in email addresses
$badChars = "[ ]+| |\+|=|[|]|{|}|`|\(|\)|,|;|:|!|<|>|%|\*|/|'|\"|~|\?|#|\\$|\\&|\\^|www[.]";
return !eregi($badChars, $str);
}//End Function

$destinatario = $_POST["email"];

if (emailOk($destinatario)) {

$UN_SALTO="\r\n";
$DOS_SALTOS="\r\n\r\n";


$titulo="Información acerca del ITSUR";
//$mensaje="<html><head></head><body bgcolor= \"#4FB05E\">";
//$mensaje.= '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="400" height="325"> <param name="movie" value="promo_ITSUR.swf"> <param name="quality" value="high"> <embed src="promo_ITSUR.swf" quality="high" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type="application/x-shockwave-flash" width="400" height="325"></embed>';
//$mensaje.= $mensaje."</object></body></html>";
$responder = $_POST["email"];
$remite = $_POST["email"];
$remitente="ITSUR";

$separador = "_separador_de_trozos_".md5 (uniqid (rand()));

$cabecera = "Date: ".date("l j F Y, G:i").$UN_SALTO;
$cabecera .= "MIME-Version: 1.0".$UN_SALTO;
$cabecera .= "From: ".$remitente."<[email protected]>".$UN_SALTO ;
//$cabecera .= "Return-path: [email protected]".$UN_SALTO;
//$cabecera .= "Reply-To: [email protected]".$UN_SALTO;
$cabecera .="X-Mailer: PHP/". phpversion().$UN_SALTO;
$cabecera .= "Content-Type: text/html;".$UN_SALTO;
$cabecera .= " boundary=$separador".$DOS_SALTOS;


// Parte primera -Fichero adjunto nº 1

# Separador inicial
$adj1 ="--$separador".$UN_SALTO;

# Encabezado parcial

$adj1 .="Content-Type: application/octet-stream; name=\"promo_ITSUR.swf\"".$UN_SALTO;
$adj1 .="Content-Disposition: inline; filename=\"promo_ITSUR.swf\"".$UN_SALTO;
$adj1 .="Content-Transfer-Encoding: base64".$DOS_SALTOS;
//$adj1 .=$mensaje;

//# lectura del fichero adjuntos

$fp = fopen("promo_ITSUR.swf", "r");
$buff = fread($fp, filesize("promo_ITSUR.swf"));
fclose($fp);
//# codificación del fichero adjunto

$adj1 .=chunk_split(base64_encode($buff));

//separador final del mensaje

$adj1 .=$UN_SALTO."--$separador".$UN_SALTO;

// Unión de las diferentes partes para crear el cuerpo del mensaje


$mensaje=$adj1;

// envio del mensaje


if (mail($destinatario,$titulo,$mensaje,$cabecera)) {
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}

}else{
echo "¡e-mail no valido!";
}

?>
  #7 (permalink)  
Antiguo 07/01/2005, 06:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Realmente . .insisto .. prueba la classe PHP Mailer .. te facilitará la vida ... de hecho ya implementa todo eso que estás intentando hacer en tu ejemplo (y probado además de muchooooooooo más comodo de usar y versatil).

Podrías hasta tomar el código de PHP Mailer y compararlo con el tuyo .. (sobre todo a nivel de cabeceras HTTP que usas y como se compone el e-mail multiparte ..).

Un saludo,
  #8 (permalink)  
Antiguo 08/01/2005, 09:41
 
Fecha de Ingreso: enero-2005
Mensajes: 4
Antigüedad: 12 años, 11 meses
Puntos: 0
Cluster Gracias por el dato suena interesante, aunque parece algo laborioso lo checare.

See you soon
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 17:51.