Foros del Web » Programando para Internet » PHP »

Enviar mail con adjuntos, a todos y seleccionados

Estas en el tema de Enviar mail con adjuntos, a todos y seleccionados en el foro de PHP en Foros del Web. HOLA Tengo una tabla clientes y quiero enviar un texto a todos los mails. En la pagina muestra un editor WYSIWYG para el envio html ...
  #1 (permalink)  
Antiguo 10/11/2006, 15:49
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
Enviar mail con adjuntos, a todos y seleccionados

HOLA
Tengo una tabla clientes y quiero enviar un texto a todos los mails.
En la pagina muestra un editor WYSIWYG para el envio html ya que se desea "pegar" una imagen junto al texto del mail.
el codigo del envio:
Código PHP:
$fileatt $adjunto// Path to the file                  
$fileatt_type "application/octet-stream"// File Type 
$start=    strrpos($adjunto'/') == -strrpos($adjunto'//') : strrpos($adjunto'/')+1;
$fileatt_name substr($adjunto$startstrlen($adjunto));
$file fopen($fileatt,'rb'); 
$data fread($file,filesize($fileatt)); 
fclose($file); 
$data chunk_split(base64_encode($data));    
$semi_rand md5(time()); 
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x"

mail("[email protected]"$asunto$_POST[mensaje_content], "MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
 Content-Type: multipart/mixed
 boundary=\"{$mime_boundary}\"
 Content-Type:{application/octet-stream}
 name=\"{$fileatt_name}
 Content-Disposition: attachment 
 filename=\"{$fileatt_name}\"
 Content-Transfer-Encoding: base64 $data --{$mime_boundary}--
From: $envia <$remite> 
Bcc: $losemails"
."\r\n") or die("Error al enviar el email");
<
form action="mail.php" method="post" enctype="multipart/form-data" name="form1" onsubmit="mensaje.prepareSubmit()"
Hasta ahora la ejecucion del codigo me muestra este error:

Warning: fread(): supplied argument is not a valid stream resource in /mail.php on line 42

Warning: fclose(): supplied argument is not a valid stream resource in /mail.php on line 43 Mensaje Enviado

La imagen "pegada" no se ve en el mail, y el archivo llamado del input "adjunto" llega sin contenido aunque aveces en las pruebas con el nombre y extension bien mostrado. El script para el mail esta copiado de la funcion mail_attachment.php, donde realize la prueba, pero obtengo el mismo error en las mismas lineas, donde llama al archivo:

Código PHP:
$file fopen($fileatt,'rb'); 
$data fread($file,filesize($fileatt)); 
La prueba de envio que hize donde llamo al archivo y uso la funcion es:
Código PHP:
mail_attachment("[email protected]"$losemails"adjuntos"$_POST[mensaje_],$_POST[adjunto]); 
Pero eso no es todo:
La otro enviar un mail con archivo adjunto a todos los seleccionados mediante checkbox. Y ahi estoy un poco perdida. como debiera ser?
Aqui es donde imprimo la lista de datos:
Código PHP:
if ($_POST[opcion]=='select'){
$sqlcli mysql_query ("SELECT razon_soc, email_cli FROM clientes");
while (
$datos mysql_fetch_array($sqlcli)){
echo  
"
<tr> <td width=\"90%\" style=\"border-bottom:1px solid #336699\"> <font color=\"#006699\" size=\"2 px\" face=\"Verdana\">
<div align=\"left\">$datos[razon_soc] </div></font></td>
<td  style=\"border-bottom:1px solid #336699\"><input type=\"checkbox\" name=\"\" value=\"off\"></td></tr>
<input name=\"email_cli\" type=\"hidden\" value=\"$datos[email_cli]\">"
;
}

Agradeceria orientación. es urgente.
GRACIAS
  #2 (permalink)  
Antiguo 10/11/2006, 19:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por mi parte te recomiendo que uses:

PHPMailer
http://phpmailer.sourceforge.net

Resuelve el 99.9% de problemas típicos con envios de e-mails con PHP, desde posibilidad de adjuntar archivos .. hasta envio por SMTP directo entre otras funcionalidades.

Parece un "anuncio de TV" (o que reciba comisión ..) pero .. en serio desde que la uso nunca más he tenido que andar buscando código por ahí o realizando implementaciones que a la hora de la verdad para mi "aplicación" no van ni vienen .. yo (como tu y todos nosotros) sólo tenemos el requirimiento en la aplicación a realizar de enviar un e-mail con ciertas características.

Resuelve el tema de enviar un archivo adjunto o imagen incrustrada (por qué PHPMailer también gestiona dicho tema perfectamente). Y luego continuas con el resto de problemas que tienes.

Otro detalle a tener encuenta es que "código" HTML generas sobre todo para la referencia de las imagenes. No sé si piensas vincularlas en el e-mail por un URL tipo: <img src="http://www.dominiotuyo.com/imagenes/imagen"> o quieres atachar la imagen + "embeberla" (no sé como se escribe correctamente xD) con un tag HTML de imagen pero que hace referencia a un archivo adjunto en el própio e-mail.

Lamentablemtene las "urgencias" que puedes tener vas a tener que aplicar "paciencia" .. por qué aquí contestamos en función de lo que uno sabe o tiempo le puede dedicar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 10/11/2006, 19:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Pero eso no es todo:
La otro enviar un mail con archivo adjunto a todos los seleccionados mediante checkbox. Y ahi estoy un poco perdida. como debiera ser?
Aqui es donde imprimo la lista de datos:

Código PHP:
if ($_POST[opcion]=='select'){ 
$sqlcli mysql_query ("SELECT razon_soc, email_cli FROM clientes"); 
while (
$datos mysql_fetch_array($sqlcli)){ 
echo  

<tr> <td width=\"90%\" style=\"border-bottom:1px solid #336699\"> <font color=\"#006699\" size=\"2 px\" face=\"Verdana\"> 
<div align=\"left\">$datos[razon_soc] </div></font></td> 
<td  style=\"border-bottom:1px solid #336699\"><input type=\"checkbox\" name=\"\" value=\"off\"></td></tr> 
<input name=\"email_cli\" type=\"hidden\" value=\"$datos[email_cli]\">"



Este tema de por sí ameritaría otro mensaje que inicies .. En principio te comento que la forma de trabajar tus "checkbox" y propagar sus variables no es del todo correcta o extremadamente enrredada como para tomar tus valores.

Te recomiendo ver esta FAQ:
http://www.forosdelweb.com/showthrea...710#post518710

Ahí veras como trabajar con "checkbox" usando su "value" para algo más productivo que un "on/off" (a modo de flag) y generando un array con los valores de los elementos checkbox que selecciones (y sólo esos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 13/11/2006, 18:29
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
probé PHP MAILER, incluso copiando y pegando el ejemplo,
Y me salen estos errores:

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/c/public_html/sistema/class.smtp.php on line 105

Warning: fsockopen(): unable to connect to smtp.servidor.cl:25 in /home/c/public_html/class.smtp.php on line 105
There has been a mail error sending to [email protected]

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/c/public_html/class.smtp.php on line 105

Warning: fsockopen(): unable to connect to smtp.servidor.cl:25 in /home/c/public_html/class.smtp.php on line 105
There has been a mail error sending to [email protected]

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/c/public_html/class.smtp.php on line 105

Warning: fsockopen(): unable to connect to smtp.servidor.cl:25 in /home/c/public_html/class.smtp.php on line 105
There has been a mail error sending to [email protected]

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/c/public_html/class.smtp.php on line 105

Warning: fsockopen(): unable to connect to smtp.servidor.cl:25 in /home/c/public_html/class.smtp.php on line 105
There has been a mail error sending to [email protected]

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/c/public_html/class.smtp.php on line 105

Warning: fsockopen(): unable to connect to smtp.servidor.cl:25 in /home/c/public_html/class.smtp.php on line 105
There has been a mail error sending to [email protected]

puse el smtp del servidor............eso es todo el problema???

que pasa?????
ah y nose como ver el tema de las imagenes incrustadas, pq eso lo esta manejando el programita aquel, el editor en javascript, y al menos en la web del creador dice q sí envia imagenes a correo.......
............(kiero ir a dormir)
Lo de los checkbox ya esta bien.
  #5 (permalink)  
Antiguo 13/11/2006, 20:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas bien en la documentación de phpmailer podrás ver que tiene tres métodos para enviar el e-amil:

1) Usando un servidor SMTP própio (el que tu indiques)
2) Forzando a que use mail() de PHP y con ello la configuración que tu servidor usa.
3) Usar "sendmail" (MTA) si dispones de el instalado en tu servidor en forma directa.

Lo recomendale es usar el primer método .. así no dependes de tu proveedor .. Ahí necesitas usar el SMTP del proveedor que uses y una cuenta de correo que tengas en el para autentificarte (usuario/contraseña). Pero si todo eso te complica .. fuerza a que use mail().

Lo que te pedía sobre las imagenes "incrustradas" es más bien el código HTML que genera tu editor visual. Sobre todo como trabaja las imagenes, normalmente lo que hacen es simplemente colocar un vínculo a tu servidor en forma de URL: http://www.tal.tal/imagenes .. Eso no "incrustra" las imagenes en tu e-mail sino que las vincularía a ese URL. Todo esto se puede manejar para que usando PHPMailer efectivamente se "incrustren" como archivos adjuntos y en el e-mail en tus imagenes hagas referecias a un tal "cid:recurso_imagen" en los tags HTML de imagen <src ...>


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 14/11/2006, 07:55
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
Cita:
Iniciado por Cluster Ver Mensaje
Lo que te pedía sobre las imagenes "incrustradas" es más bien el código HTML que genera tu editor visual. Sobre todo como trabaja las imagenes, normalmente lo que hacen es simplemente colocar un vínculo a tu servidor en forma de URL: ........ .. Eso no "incrustra" las imagenes en tu e-mail sino que las vincularía a ese URL. Todo esto se puede manejar para que usando PHPMailer efectivamente se "incrustren" como archivos adjuntos y en el e-mail en tus imagenes hagas referecias a un tal "cid:recurso_imagen" en los tags HTML de imagen <src ...>
Un saludo,
Probe el envio sin cabecera html y me llego lo siguiente :
Código:
<P align=center><STRONG>testttttttttt<IMG class=butClass title=\"Remove Link\" onclick=\"mensaje.doTextFormat(\'unlink\',\'\')\" alt=\"Remove Link\" src=\"h t t p : / / w w w . servidor dat cl slash sistema slash editor slash images slash unlink dat png\"></STRONG></P>
la imagen la puse, arrastrando uno de los iconos del menu del editor, pero al llegar CON la cabecera html, la imagen no se ve, no muestra nada.

La pagina del editor html TTW Editor es triplew koivi dat com slash WYSIWYG-WYSIWYG-Editor slash

los links raros son asi pq no me deja publicarlos.

Última edición por cecilia_sobarzo; 14/11/2006 a las 07:55 Razón: explicacion
  #7 (permalink)  
Antiguo 14/11/2006, 08:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según parece tu sistema por algún medio subirá tu imagen al servidor o la tomará de este .. concretamente tu deberías tener tus imagenes en el URL que ahí indica en tag de imagen:

http://www.servidor.cl\sistema\edito...unlink\dat.png
(o como sea el URL correcto)

Por ende . .en tu e-mail generado tus imagenes las referencias a ese URL, así que tu cliente de correo debe aceptar abrir contenido en forma externa (la mayoría de clientes de correo por -defecto- bloquean esos accesos a images/etc externo .. revisa tu cliente de correo y habilita esa opción). Por supuesto asegurate de que en ese URL tengas la imagen en cuestión referenciada.

PD: No es necesario si el foro no te deja poner links (por n° de mensajes) que hagas "slash" . .con poner algo como htt p:// .. o algo así ya lo puedes indicar .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 14/11/2006, 13:49
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
Cita:
Iniciado por Cluster Ver Mensaje
Si te fijas bien en la documentación de phpmailer podrás ver que tiene tres métodos para enviar el e-amil:

1) Usando un servidor SMTP própio (el que tu indiques)
2) Forzando a que use mail() de PHP y con ello la configuración que tu servidor usa.
3) Usar "sendmail" (MTA) si dispones de el instalado en tu servidor en forma directa.

Lo recomendale es usar el primer método .. así no dependes de tu proveedor .. Ahí necesitas usar el SMTP del proveedor que uses y una cuenta de correo que tengas en el para autentificarte (usuario/contraseña). Pero si todo eso te complica .. fuerza a que use mail().

Un saludo,
1) usé el smtp del servidor y una cuenta '@servidor.cl', pero sigue igual. Nose si tengo q poner en el scritp la autentificacion como dices (usuario/contraseña) o con lo q esta basta, pq probando me salen los mismos errores.

2) Nose como poner los datos si uso mail:
donde va todo esto y como:
$mail->From = "[email protected]";
$mail->FromName = "Mi Yo";
$mail->Host = "smtp.servidor.cl";
$mail->Mailer = "smtp";
$mail->Body = $mensaje_content;
$mail->AltBody = $text_body;
$mail->AddAddress($row[EMAIL_CLI], $row[RAZON_SOC]);
$mail->AddStringAttachment($adjunto);

3)............

gracias por la ayuda.
  #9 (permalink)  
Antiguo 14/11/2006, 16:39
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
Pille un post por ahi, q decia q habia q cambiar en la clase misma (class.phpmailer.php), esta linea a 'true' que por defecto es 'false'.

$mailer->SMTPAuth = true;
ahora dice q hay q poner el nombre de usuario y la contraseña y en las siguientes lineas nos muestra las variables...
var $Username = "";
var $Password = "";

no me parece mucho pero tendra q ser así.

eso en respuesta a estos errores:
Warning: fsockopen(): unable to connect to smtp.servidor.cl:25 in /home/c/public_html/class.smtp.php on line 105

Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/c/public_html/class.smtp.php on line 105 sobre la conexion a SMTP
Código:
    #connect to the smtp server
        $this->smtp_conn = fsockopen($host,    # the host of the server
                                     $port,    # the port to use
                                     $errno,   # error number if any
                                     $errstr,  # error message if any
         LINEA 105-->             $tval);   # give up after ? secs
Lo otro sucede con la forma de enviar los emails, ya q para "cada uno" ejecuta la clase y para lo q lo necesito no seria bueno ya q creo q se va a demorar en enviar unos 1500 mails.... si lo envio a todos los clientes.....
y en ese sentido en la otra opcion que tengo algo pasa con mi arreglo de seleccionados:

Código PHP:
if (isset($_POST[seleccion])) 
    {
    
$lista=implode(',',$_POST['seleccion']); 
##########/////php mailer
require("class.phpmailer.php");
    
$mail = new PHPMailer();
$mail->From     "[email protected]";
$mail->FromName "Mi yo";
$mail->Host     "smtp.servidor.cl";
$mail->Mailer   "smtp";
$mailer->SMTPAuth true
     
$mail->Body    $mensaje_content;
     
$mail->Subject $asunto;
     
$mail->AddAddress($lista"");
     
$mail->AddStringAttachment($adjunto"attach");

    if(!
$mail->Send())
      echo 
"Hay un error enviando a " $adjunto "<br>";
    
$mail->ClearAddresses();
    
$mail->ClearAttachments(); 
nose si esta bien y me manda de una vez a todos los seleccionados q estan separados con (,) o tengo q hacerlo de otra forma.

HELP!

Última edición por cecilia_sobarzo; 14/11/2006 a las 16:41 Razón: error
  #10 (permalink)  
Antiguo 14/11/2006, 17:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El tema de la autentificación es necesario, pues al igual que si tu usas tu cuenta de correo y configuras un "Outlook" (cliente de correo) necesitas indicar los datos de autentificación (usuario/contraseña) .. así es como te puede impedir usarlo si no usas esos datos.

Un ejemplo completo de uso de PHPMailer con uso de autentificación lo tienes en este tutorial:
http://www.programacion.com/php/articulo/phpmailer/

Por lo demás, deberías generar un e-mail por envio .. no usar todas las direcciones en el "TO" (es lo que haces cuando usas AddAddress()) o BCC o BCC.

Para eso .. de tu array que tienes la lista de e-mails a enviar .. lo recorres con un bucle, generas el e-mail a enviar y lo envias:
Código PHP:
// resto de configuración de PHPMailer y definición de tu e-mail ..

// El e-mail adjunto lo adjunto una vez sólo .. ahí permanecerá definido hasta que termine el envio ..
$mail->AddStringAttachment($adjunto"attach"); 

foreach (
$_POST['seleccion'] as $email){

    
// Añades la dirección de e-mail a enviar
    
$mail->AddAddress($email); 
    if(!
$mail->Send()) {
      echo 
"Hay un error enviando a " $email "<br>"
    }

    
// esto es necesario para no ir acumulando direcciones de e-mail
    
$mail->ClearAddresses(); 
   

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 15/11/2006, 08:48
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
Gracias Clus!
solucionado el tema de los emails y tb los adjuntos con esta respuesta q te encontre por ahi:

Cita:
Iniciado por Cluster Ver Mensaje
El archivo para adjuntarlo llega en $_FILES (y el resto de variables deberías accederlas por $_POST no como $nombre_variable_form ... eso no es seguro). Usa los arrays superglobales: $_GET, $_POST .. etc

Por ende ..

Código PHP:
 //Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
      
if (!empty($_FILES['archivo']['tmp_name'])) {
    
$mail->AddAttachment($_FILES['archivo']['tmp_name'],$_FILES['archivo']['name']);
      } 
y claro tuve q crear un nuevo email para usar de from y hacer el "login" en la clase, guardando usuario y contraseña. Ademas incluir la funcion HTML para q no me llegue el codigo.
asi quedo ahora:

Código PHP:
if (!empty($_FILES['adjunto']['tmp_name'])) {
    
$mail->AddAttachment($_FILES['adjunto']['tmp_name'],$_FILES['adjunto']['name']);
      }  
    foreach (
$_POST['seleccion'] as $email){
        
$mail->AddAddress($email);  
            if(!
$mail->Send()) {
              echo 
"Hay un error enviando a " $email "<br>";
            }
        
$mail->ClearAddresses();
    }
    
$mail->ClearAttachments(); 
El mail llega sin problemas.
Sólo me falta un pequeño detalle.... Necesito pegar una foto dentro del mensaje a enviar. Esa es la razón por la que puse el editor. Ahora, nose si deberia tener un boton de "insertar imagen" o se puede pegar directamente como en otros programas de correo. En este momento al pegar una imagen, en el mail llega el tamaño, se ve el encuadre nada mas y al hacer 'mostrar imagen' queda igual. Nose como se ve ese tema aunque encontre un mensaje tuyo al respecto, pero en mi caso yo no tengo idea de q imagenes puede 'embebber' el usuario.

Cita:
Iniciado por Cluster Ver Mensaje
Necesitarías "parsear" (con expresiones regualres como te han comentado) todo tu HTML en busca de las imagenes (a un array por ejemplo que contenga esos nombres de imagenes).

O si tienes médio de saber que imagenes son las que usastes en tu HTML por otro médio (por qué las subistes al servidor tal vez con PHP .. o tienes claro en que directorio del servidor están ...). Se trata de que por el médio que corresponda obtengas un array "limpio" con los nombres de las imagenes.


Código PHP:
// obtienes tu array de imagenes ... quedando al final algo tipo:
$imagenes_array=array("nose.jpg","blabla.jpg");

// contador .inicio.
$x=0;
// bucle para recorrer los elementos del array.
foreach ($imagenes_array as $imagen){
    
// adjuntar la imagen y darle nombre dinámico (imagen_n°)
   
$mail->AddEmbeddedImage($imagen"imagen_".$x$imagen)); 
   
// sustituir el nombre de tu archivo por el "cid:" y nombre de referencia generado ...
   
str_replace("cid:imagen_".$x,$imagen,$mail->Body);
  
// incrementar contador ...
$x++;

Habría que evaluar bien los casos concretos donde nombres de imagenes se puedan repetir .. ojo con eso ..

Un saludo,
como sigo ahora...SOLO ME FALTA ESTO .
Mil trillones de gracias.

Cecilia
  #12 (permalink)  
Antiguo 15/11/2006, 10:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Antes de nada ...

Mira el código fuente del e-mail que recibes e indica el código que rodea al tag HTML de imagen .. que dirección indica en el "src" de <img ...>?

El tema de adjuntar una imagen en forma "incrustrada" (embebbed o como se escriba) como en el mensaje que indicas, se trata de sustituir el URL que ahí puedas tener por el "cid:".

Pero, antes de hacer eso, tus imagenes debes de haberlas subido al servidor.

En general, todo editor visual como el que usas tiene un método ("botón") para subir imagenes al servidor .. y de ahí es de donde las seleccionas para incrustrarlas en tu documento que estás creando, la referencia suele quedar como un "http://www.tal.tal/imagenes/nose.jpg", es decir se referencia a un URL de tu servidor .. Si quieres "incrustrar" la imagen físicamente ahí debes de adjuntar la imagen con el método AddEmbeddedImage() .. pero eso toma la imagen del -servidor-.

Si en ese editor te permite "pegar" una imagen simplemente con "arrastrar y soltar" .. ahí no sé que referencia queda de tu imagen o si iniciar un proceso de "upload" de la imagen por otro médio, el caso es que la imagen debe estar en el servidor. Así que como te comento .. el procedimiento "natural" es que la imagen la subas al servidor y desde el .. ahí la selecciones para incrustrarlas en tu documento.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 15/11/2006, 14:43
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
Tienes toda la razón.
La imagen llega con la ruta local
<IMG src=\"fil e:// /E:/ proyect /nenu. JPG\">
y obviamente no la encuentra alli.
Pero cuando arrastre un icono del editor , llegaba asi:
<IMG class=butClass title=\"Remove Link\" onclick=\"mensaje.doTextFormat(\'unlink\',\'\')\" alt=\"Remove Link\" src=\" h tt p:// ww w. servidor .cl/ editor/ images/ unlink. png\">
pero tampoco se ve aunque la ruta es la correcta

en gmail se ve un cuadrito tipico de cuando la imagen aun no se muestra, y en hotmail, no se ve nada.

Pero bueno, seguramente tendré que hacer otro pequeño sistema para subir las fotos y luego con un boton "insertar imagen" en el menu del editor, poder incluirla.
El editor que puse no trae habilitada esta opcion de insertar imagenes, voy a enviarle un mail al desarrollador aunque imagino q tendre q buscar otro.
Aca en el foro al insertar mensaje o respuesta hay un editor personalizado q permite insertarlas pero sólo permite ingresar la ruta, lo q no creo q le sirva al usuario final, se le complicaría ya no esta habituado a esto. Nose si seria la manera correcta pq este boton tiene como acción predeterminada ir a buscar localmente archivos..........
Lo otro seria poner en esa casilla la ruta actual y q el usuario solo ponga el nombre o detectar lo que subio recien y pegarlo.. nose.

Tratare de hacer lo q me dices, subir las fotos y luego ver como las pego.
Pronto nuevas dudas....
gracias.
  #14 (permalink)  
Antiguo 15/11/2006, 15:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Pero cuando arrastre un icono del editor , llegaba asi:
<IMG class=butClass title=\"Remove Link\" onclick=\"mensaje.doTextFormat(\'unlink\',\'\')\" alt=\"Remove Link\" src=\" h tt p:// ww w. servidor .cl/ editor/ images/ unlink. png\">
pero tampoco se ve aunque la ruta es la correcta

en gmail se ve un cuadrito tipico de cuando la imagen aun no se muestra, y en hotmail, no se ve nada.
Y tu estás segura que tus clientes de correo que usas tienen activada la opción de ver archivos externos? .. Por defecto la mayoría de servicios o clientes de correo la tienen desactivada .. así que no siguen los links externos (como es ese caso).

Cita:
Pero bueno, seguramente tendré que hacer otro pequeño sistema para subir las fotos y luego con un boton "insertar imagen" en el menu del editor, poder incluirla.
El editor que puse no trae habilitada esta opcion de insertar imagenes, voy a enviarle un mail al desarrollador aunque imagino q tendre q buscar otro.
Pues usa otro sistema que incorpore esa funcionalidad . .tienes muchos que lo hacen -por defecto-:

HTMLArea
www.htmlarea.com

FK Editor
http://www.fckeditor.net/

Y muchos más que encontraras en "google".

Cita:
Aca en el foro al insertar mensaje o respuesta hay un editor personalizado q permite insertarlas pero sólo permite ingresar la ruta, lo q no creo q le sirva al usuario final, se le complicaría ya no esta habituado a esto. Nose si seria la manera correcta pq este boton tiene como acción predeterminada ir a buscar localmente archivos..........
Lo otro seria poner en esa casilla la ruta actual y q el usuario solo ponga el nombre o detectar lo que subio recien y pegarlo.. nose.
Ya te expliqué el procedimiento, de hecho lo veras más claro cuando uses alguno de los editores que te indico que incorporan la funcionalidad integrada de hacer el "upload" de las imagenes. Ahí lo que hace con "javacript" es entregar la ruta de tus imagenes al HTML que genera cuando tu la seleccionas de las que subistes.

Una vez la imagen en el servidor tienes dos opciones para generar tu e-mail y adjuntar esa imagen com parte de tu HTML del e-mail:

1) Incrustrala (con PHPMailer y todo el tema del CID:). No tienes problemas de que el cliente de correo bloquee accesos externos .. pero el e-mail se incrementa su peso (bytes).

2) Referenciandote a la imagen por el URL completo: http://www.tal.tal/imagenes/tal.tal .. ahí sólo tienes los problemas que te mencioné sobre este método. A favor tienes que no envias archivos = menor peso del e-mail = más rápido el envio/recepción.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #15 (permalink)  
Antiguo 19/11/2006, 09:31
 
Fecha de Ingreso: mayo-2003
Mensajes: 37
Antigüedad: 20 años, 11 meses
Puntos: 0
yiap
Encontre un editor re gueno, el que tu me recomendaste.
Muy completo y todo, pero..... al mail en vez de llegarme una foto extrañamente me llega una casilla de text junto al texto enviado.

mirando en el codigo del envio veo que lo que "incrusta" es un input tipo image, pero la ruta muestra sólo la carpeta contenedora de los archivos "UserFiles" de esta forma:

Código:
X-Mailer: PHPMailer [version 1.73]
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset="iso-8859-1"
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - srv1. wirenetchile.com
X-AntiAbuse: Original Domain - gmail.com
X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12]
X-AntiAbuse: Sender Address Domain - servidor.cl
X-Source: 
X-Source-Args: 
X-Source-Dir: 

teste
<input width=\"600\" type=\"image\" height=\"400\" src=\"/ UserFiles/Image/ cajas2.jpg\" />

Las imagenes se suben correctamente al servidor. Asi funciona, primero las cargo o subo y luego las incrusto.
Talvez lo mejor seria unarelacion entre el editor y el addembeddedimage del phpmailer, pero no se si existe o como crearla.

el path de userfiles esta en un archivo de configuracion, donde establece como valor por defecto un: / UserFiles/............ ya probre anteponiendo la raiz del sitio tipo h tt p://ww w.servidor.cl/userfiles/.. pero no funciona, pq el path base es: fckeditor/...

estoy muy enredada... q pasara?

mi body es directamente el nombre del INPUT que crea el editor, ya que crea un textarea:

$mail->Body = $_POST[mensaje];

ayuda plis...
gracias!
  #16 (permalink)  
Antiguo 19/11/2006, 19:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo no sé como debes configurar el editor que uses .. pero debes conseguir que la imagen en tu servidor esté accesible por un URL absoluto tipo:

http://www.domion.tal/imagenes/imagen.tal

O donde estén.

Si por el URL tu ves esa imagen directa .. en tu e-mail si así se hace referencia también la deberías ver en tu e-mail. Como ya te dije antes y te he repetido várias veces, .. que cierto cliente de correo no abra ese tipo de imagenes es otro tema (de configuración de este que bloquea elementos externos al e-mail).

Aquí lo más complicado es intentar "sustituir" los "paths" (o rutas) que dé tu editor hacia tu imagen con el "CID:imagen" e incrustrar tus imagenes (adjuntarlas) como parte del e-mail .. pero .. esto dejalo para tu "2° fase" .. primero deja tus imagenes en tu servidor y prueba tu sistema ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:39.