Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Envio email a través de thunderbird (https://www.clubdelphi.com/foros/showthread.php?t=71510)

pjmedina 24-12-2010 11:34:23

Envio email a través de thunderbird
 
Buenos dias a tod@s.
Lo primero de todo desearos felices fiestas.

A ver si puede alguien ayudarme, os comento lo que me pasa.

Estoy intentado mandar email con Thunderbird desde una aplicación hecha con delphi 7.
Si en windows xp, pulso inicio, ejecutar, y pego:
Código:

thunderbird -compose to='destino@dominio.com',cc='copia@dominio.com',subject="Pruebas Thunderbird",body="Mensaje de prueba Thunderbird", attachment='C:\imagen.jpg'
Funciona perfectamente, me abre la pantalla para enviar el mail.
Ahora bien,
he hecho una funcion que me genera esa linea de comando, pero falla al ejecutarla.
Código Delphi [-]
procedure TForm1.Enviar;
var
directori:string;
cadena:string;
cad:PAnsiChar;
begin
  directori:='C:';
  cadena:='thunderbird -compose to=';
  cadena:=cadena+chr(39)+ecuenta.text+chr(39);
  if Ecopia.Text<>'' then
    cadena:=cadena+',cc='+chr(39)+ecopia.text+chr(39);
  cadena:=cadena+',subject="'+editasunto.text+'"';
  if Memo1.Text<>'' then
    cadena:=cadena+',body="'+Memo1.Text+'"';
  if editfichero.Text<>''then
    cadena:=cadena+',attachment='+chr(39)+directori+'\'+editfichero.text;
  if(ckAdjunto2.Checked)then
  begin
    cadena:=cadena+','+directori+'\'+Fichero2.Text+chr(39);
  end
  else if editfichero.Text<>'' then
    cadena:=cadena+chr(39);
  cad:=PChar(cadena);
  if ShellExecute(Handle, 'open', cad, nil, nil, SW_SHOWNORMAL)<= 32 Then
    MessageDlg('Error al enviar',mtError,[mbok],0);
end;

Siempre da error al enviar. La linea se genera bien, porque he probado a escribirla en un memo antes de ejecutarla, y pegarla manualmente en inicio, ejecutar, y asi si que funciona.

Otra prueba que he hecho es entrar en la consola msdos, Inicio->ejecutar->escribir cmd y pulsar enter. Una vez alli escribir manualmente la instruccion, pero también falla, dice:
Código:

"Thunderbird" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
Espero podais ayudarme, esto me trae de cabeza.

Saludos y gracias por todo.

Ñuño Martínez 24-12-2010 12:03:13

Pues creo que la respuesta de la consola de comandos es clara:

Cita:

"Thunderbird" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
Useasé, que no lo encuentra. Ten en cuenta que tiene que saber dónde está, y que yo sepa "C:/archivos de programa/thunderbird" no está en la lista de sitios donde buscar. Prueba a escribir la ruta completa "C:/archivos de programa/thunderbird/thunderbird.exe ...". (Ojo, que la ruta en tu sistema puede ser otra. Es más, estoy usando "/" en lugar de "\" :eek:)

pjmedina 24-12-2010 12:11:12

Lo he probado y tampoco.
Además porque funciona desde inicio ejecutar, poniendo thunderbird únicamente?


Otro comando que no me funciona es este:
Código:

net send 192.168.1.20 "Mensaje a enviar"
El caso es el mismo, desde inicio, ejecutar va perfectamente, pero desde delphi no.

Ñuño Martínez 28-12-2010 11:58:28

Acabo de fijarme en un detalle que se me pasó antes. Tú le pasas las opciones en la misma cadena, pero con ShellExecute los parámetros se pasan a través del cuarto parámetro:
Código:

ShellExecute(Handle, Operation, FileName, Params, Folder, ShowCmd)
Por eso no funciona.

Delfino 30-12-2010 05:15:11

Si no me equivoco el componente TJvMail de la suite JVCL permite enviar correo por medio del cliente de correo instalado..

pjmedina 09-11-2011 17:33:27

Cita:

Empezado por Ñuño Martínez (Mensaje 385959)
Acabo de fijarme en un detalle que se me pasó antes. Tú le pasas las opciones en la misma cadena, pero con ShellExecute los parámetros se pasan a través del cuarto parámetro:
Código:

ShellExecute(Handle, Operation, FileName, Params, Folder, ShowCmd)
Por eso no funciona.

Efectivamente era eso. Ha pasado bastante tiempo, pero es que he andado muy liado y olvide este post.

Gracias por todo.

Paoti 13-01-2012 17:22:43

¡hola pjmedina!


Lograste resolver el envió de correos a travez de thunderbird,

¿Podrías compartirnos tu solución?

muchas gracias de antemano.

Ñuño Martínez 17-01-2012 12:52:53

Si te fijas, la respuesta está justo en el mensaje anterior al tuyo. ;)


La franja horaria es GMT +2. Ahora son las 04:38:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi