PDA

Ver la Versión Completa : Problema al enviar Mail


jcarteagaf
08-05-2008, 22:45:36
Hola, estoy haciendo un programa que debe enviar un mail con un archivo adjunto. Estoy usando Delphi 7 y las Indy 10. He usado un ejemplo que pusieron aca.

Mi codigo es el siguiente:

gcUsuarioCorreo.ReadParams;
if not gcUsuarioCorreo.CheckParams then
begin
Mensajeerror('No se definió los parametros de Envio de Datos');
actSetup.Execute;
exit;
end;
with idMessage do
begin
Clear;
Body.Clear;
Body.Add('COMPENSA: Los datos adjuntos corresponden al '+FormatDateTime('dd/mm/yyyy',date));
From.Address := gcUsuarioCorreo.Correo;
Recipients.EMailAddresses := 'jcafcompensa@yahoo.com';
Subject := 'Datos correspondientes al '+FormatDateTime('dd/mm/yyyy',date);
Priority := TidMessagePriority(mpHigh);
TidAttachmentFile.Create(idMessage.MessageParts,sFileZip);
end;
with idSMTP do
begin
Username := gcUsuarioCorreo.Usuario;
Password := gcUsuarioCorreo.Password;
Host := gcUsuarioCorreo.Host;
Port := gcUsuarioCorreo.Puerto;
if Not Connected then
Connect();
try
try
Controles(true);
IdSMTP.Send(IdMessage);
finally
Controles(false);
Disconnect;
end;
MensajeError('Enviado Correctamente');
except
ON E: EIdReplyError do
begin
MensajeError('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o el password.');
end;
on E: EFOpenError do
begin
MensajeError('No se ha podido enviar el email.' + #13 +
'Fichero Adjunto desconocido o erróneo.');
end;
on E: EIdSocketError do
begin
MensajeError('No se ha podido enviar el email.'+ #13 +
'Host desconocido o incorrecto.');
end
else
begin
MensajeError('Fallo en el envio de email');
raise;//para que muestre el error.
end;
end;
if connected then
Disconnect;
end;

Sin embargo al momento de ejecutar el programa lanza el siguiente erro:
Must Issue a STARTTLS command first

Alguien podria darme una mano con esto. Gracias.

BlueSteel
09-05-2008, 00:31:44
Hola... en realidad se parece al codigo que utilizo... pero no le veo el fallo


With IdMessage Do
Begin
Body.Clear;
Body.Add(vMensaje.Text);
From.Text := 'correoenvio@dominio.cl';
Recipients.EMailAddresses := vPara.Text;
Subject := vAsunto.Text;
Priority := TidMessagePriority(mpHighest);
TidAttachment.Create(IdMessage.MessageParts,Concat('O:\',IntToStr(Ordenes.IBQ_Select['Ord_Numero']),'.pdf'));
End;
With IdSMTP do
Begin
Username := 'casilla_correo';
Password := 'clave_casilla';
Host := '192.168.1.3'; // Ip del Servidor o nombre del Host
Port := 25;
try
Connect;
Try
Send(IdMessage);
Finally
Disconnect;
End;
ShowMessage('Se envio la Orden de Compra en forma correcta');
Except
On E: EIdProtocolReplyError Do
ShowMessage('E-Mail no se ha podido enviar');
On E: EFOpenError Do
Begin
ShowMessage('E-Mail no se ha podido enviar' + #13 +
'Fichero Adjunto desconocido o erróneo.');
end;
On E: EIdSocketError Do
Begin
ShowMessage('E-Mail no se ha podido enviar'+ #13 +
'Host desconocido o incorrecto.');
end
Else
ShowMessage('Fallo en el envio de email');
End;
If Connected Then Disconnect;
End;
Close;

jcarteagaf
09-05-2008, 16:34:32
Sigo con el problema, el error mostrado ha sido interceptado por el try except
ON E: EIdReplyError do
begin
MensajeError('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o el password.');

No puede ser incorrecto ya que uso mi mail de gmail para enviar. uso el puerto 587. Que puede estar mal?

Vamos muchachos, se que alguien por ahi tiene la solución. Denme una manita, que mientras no entregue esto no puedo solicitar las vacaciones que ya me tocan....:)

Gracias de antemano....

BlueSteel
09-05-2008, 17:02:18
Sigo con el problema, el error mostrado ha sido interceptado por el try except

Código Delphi [-] (http://www.clubdelphi.com/foros/#) ON E: EIdReplyError do
begin
MensajeError('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o el password.');




No puede ser incorrecto ya que uso mi mail de gmail para enviar. uso el puerto 587. Que puede estar mal?

Vamos muchachos, se que alguien por ahi tiene la solución. Denme una manita, que mientras no entregue esto no puedo solicitar las vacaciones que ya me tocan....:)

Gracias de antemano....

podrias intentar con utilizar otro puerto....


Gmail requiere una conexión cifrada SSL (capa de sockets segura) (capa de sockets seguros (Secure Sockets Layer, SSL): estándar abierto propuesto desarrollado por Netscape Communications para establecer un canal de comunicaciones seguro para que no se produzca la intercepción de información importante como números de tarjetas de crédito.) (javascript:AppendPopup(this,'IDH_ofdefSecureSocketsLayerSSL_1')) cuando recupera y envía correo electrónico. Gmail usa el puerto número 995 para POP3 (POP3: protocolo común que se utiliza para recuperar mensajes de correo electrónico de un servidor de correo electrónico de Internet.) (javascript:AppendPopup(this,'IDH_redefPostOfficeProtocolVersion3POP3_2')) y el puerto 465 para SMTP (Protocolo simple de transferencia de correo (SMTP): protocolo común que se utiliza para enviar mensajes de correo electrónico a través de Internet.) (javascript:AppendPopup(this,'IDH_redefSimpleMailTransferProtocolSMTP_3')). Esta configuración no es la predeterminada para una cuenta POP3 en Outlook y requiere que modifique la configuración de la cuenta en Outlook.


salu2

jcarteagaf
09-05-2008, 17:07:50
Muchas gracias por responder amigo Blue, estuve haciendo pruebas con el puerto 465, ya no lanza la excepción pero el programa se como congelado (en realidad me permite operarlo, pero al hacer click sobre cualquier boton lanza un access violation). Tampoco envia el mail y no llega a emitir el mensaje de Mensaje Enviado que tengo al final del proceso.

Alguna otra idea? Para probar solo puedo usar mis cuentas de gmail, hotmail o yahoo ya que no tengo un servidor de correo propio. Eso si, cuando distribuya el programa, los clientes tienen correos corporativos pero como pruebo que funciona?

Gracias de nuevo.

BlueSteel
09-05-2008, 17:53:36
Muchas gracias por responder amigo Blue, estuve haciendo pruebas con el puerto 465, ya no lanza la excepción pero el programa se como congelado (en realidad me permite operarlo, pero al hacer click sobre cualquier boton lanza un access violation). Tampoco envia el mail y no llega a emitir el mensaje de Mensaje Enviado que tengo al final del proceso.

Alguna otra idea? Para probar solo puedo usar mis cuentas de gmail, hotmail o yahoo ya que no tengo un servidor de correo propio. Eso si, cuando distribuya el programa, los clientes tienen correos corporativos pero como pruebo que funciona?

Gracias de nuevo.


si quieres puedes probar con la sgte cuenta (la cree en mi servidor)

correo : jcarteagaf@cdh.cl
usuario: jcarteagaf
clave: idem_al_usuario

smtp : smtp.cdh.cl
pto : 25 (prueba con este...)

bueno, esto te permite enviar por ese correo....

Salu2

jcarteagaf
09-05-2008, 18:06:02
Mil gracias nuevamente amigo Blue. Probe con esa cuenta y me da la excepcion inicial.

Seguire intentando esta tarde, ahora me voy a almorzar....:)

Nuevamente muchisimas gracias.

Saludos.

BlueSteel
09-05-2008, 21:35:09
Mil gracias nuevamente amigo Blue. Probe con esa cuenta y me da la excepcion inicial.

Seguire intentando esta tarde, ahora me voy a almorzar....:)

Nuevamente muchisimas gracias.

Saludos.

pues, puede que tengas problemas con los puertos.. que estos este cerrados....

mira.. si tienes outlook.. configura la cuenta en el... y realizas una prueba.. si te funciona en el outlook... te debiera funcionar en tu sistema

cuenta : jcarteagaf
usuario : jcarteagaf

SMTP : smtp.cdh.cl o dirección_IP
POP3 : pop.cdh.cl o dirección_IP

para saber la dirección IP hace un ping a smtp.cdh.cl y anotas la dirección que te de...debe ser 200.72.209.106 (no estoy seguro)

si quieres entrar al correo lo puedes hacer desde aquí (http://www.cdh.cl/webmail/src/login.php) ingresando solo el usuario y contraseña..

bueno,.. por lo pronto no se me ocurre nada más....

Salu2:p:D

jcarteagaf
09-05-2008, 21:43:36
Estuve probando con los datos que me diste amigo BlueSteel y me da el siguiente error:

Requested action not taken: mailbox unavailable

Alguna idea?

Gracias por anticipado.

BlueSteel
09-05-2008, 21:55:11
Estuve probando con los datos que me diste amigo BlueSteel y me da el siguiente error:

Requested action not taken: mailbox unavailable

Alguna idea?

Gracias por anticipado.

Pero donde te da ese error ???

para que veas que la cuenta funciona... ingresa al webmail (http://www.cdh.cl/webmail/src/login.php)

Salu2:p:D

jcarteagaf
09-05-2008, 22:03:35
Pues en el webmail si funciona.

Es algo que debo estar haciendo mal. Revisare nuevamente mis procesos y te aviso cualquier cosa.

Gracias.