Domingo 22 de Diciembre de 2024, 14:19
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Delphi
»
Problema Al Enviar Mails
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema Al Enviar Mails (Leído 11796 veces)
RazoR
Nuevo Miembro
Mensajes: 20
Problema Al Enviar Mails
«
en:
Jueves 22 de Septiembre de 2005, 01:34 »
0
Bueno, estoy tratando de hacer un programa y necesito enviar un mail. Para ello intenté usar los componentes Indy (v10) y una cuenta de GMail. En fin, puse las DLLs de SSL en el directorio del proyecto y puse un idSMTP, un IdSSLIOHandlerSocketOpenSSL y un IdMessage en el formulario. Puse los datos de mi cuenta, cambié el puerto del SMTP y SSL a 587 (que es el que usa gmail) y puse que use el modo ImplicitTLS pero al intentar enviar el mail no lo hace
Alguien tiene idea de cómo se hace o tiene otra alternativa para enviar mails?
Saludos, Gonzalo
Tweet
Neko-sama
Miembro activo
Mensajes: 99
Re: Problema Al Enviar Mails
«
Respuesta #1 en:
Jueves 22 de Septiembre de 2005, 03:58 »
0
usas el TNMSMTP de FastNet
Te conectas:
Código: Text
procedure TForm1.Button1Click(Sender: TObject);
begin
if NMSMTP1.Connected then
NMSMTP1.Disconnect
else
begin
NMSMTP1.Host := '';
NMSMTP1.UserID := '';
NMSMTP1.Connect;
end;
end;
Envias el correo:
Código: Text
procedure TForm1.Button2Click(Sender: TObject);
begin
if NMSMTP1.Connected then
begin
NMSMTP1.PostMessage.FromAddress := '';
NMSMTP1.PostMessage.FromName := '';
NMSMTP1.PostMessage.ToAddress.Text := '';
NMSMTP1.PostMessage.Body.Text := '';
NMSMTP1.PostMessage.Subject := '';
NMSMTP1.SendMail;
end
else
ShowMessage('Necesitas estar conectado para enviar el mail');
end;
eso es todo
el puerto por defecto es el 25 el del SMTP
tienes que configurar un host... puedes usar un dns o la IP...
creo que el user Id no es necesario...
cuando exista un error... capturalo y veras que es un error de SMTP y que esta documentado... creo que son codigos pero cada codigo significa algo asi que es facil entender que es lo que pasa...
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #2 en:
Jueves 22 de Septiembre de 2005, 04:58 »
0
El problema es que para usar el servidor SMTP de GMail necesito identificarme con mi usuario y password y para ésto necesito usar el TLS y no sé bien como hacerlo. Sino, alguien sabe alguno que no requiera ningún tipo de autenticación?
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #3 en:
Jueves 22 de Septiembre de 2005, 15:10 »
0
El mensaje tiene que ser configurado de la siguiente manera:
Código: Text
with idMessage do begin
// Cuerpo del mensaje.
Body.Clear;
Body.Add('Aqui añades el cuerpo del mensaje);
// Cuenta Origen.
From.Text := EMAILORIGEN;
// Cuenta Destino.
Recipients.EMailAddresses := EMAILDESTINO;
// Asunto del email.
Subject := ASUNTO;
// Prioridad del mensaje, ALTA.
Priority := TidMessagePriority(mpHighest);
// Coloco el archivo adjunto el cual enviar.
TidAttachment.Create(idMensage.MessageParts,ARCHIVOADJUNTO);
end;
y el idsmpt:
Código: Text
with idSMPT do begin
// Configuro autentificación.
AuthenticationType := atLogin;
Username := USERNAME; // Nombre del usuario
Password := PASS; // la password
// Configuro el servidor SMTP.
Host := HOST;
Port := PUERTO;
try
Connect;
try
// Envio el mensaje.
Send(idMenssage);
finally
Disconnect;
end;
Msg('Enviado Correctamente');
except
// Capturo algunas excepciones que pueden ocurrir
ON E: EIdProtocolReplyError do begin
Msg('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o la password.');
end;
on E: EFOpenError do begin
Msg('No se ha podido enviar el email.' + #13 +
'Fichero Adjunto desconocido o erróneo.');
end;
on E: EIdSocketError do begin
Msg('No se ha podido enviar el email.'+ #13 +
'Host desconocido o incorrecto.');
end
else begin
Msg('Fallo en el envio de email');
end;
end;
if connected then Disconnect;
end
Bienvenido
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #4 en:
Jueves 22 de Septiembre de 2005, 15:18 »
0
Bueno, estoy por terminar unos trabajos para la escuela y si tengo tiempo lo pruebo. Gracias por las respuestas de ambos y por la bienvenida
Saludos, Gonzalo
/EDIT: bad news
Acabo de probarlo y no anda. En AuthType no existe el valor atLogin, hay atDefault, atNone y atSASL. Usando el primero me da el error 'Must issue a STARTTLS command first' y si uso atSASL me da el error 'Need SASL mechanisms to login with it!!'.
Yo había encontrado ésto para usar POP3 y una cuenta de GMail. Sinceramente no lo probé, debería hacerlo, pero yo necesito usar el SMTP. Intenté hacer como ahí, que usaba un IOHandler y usaba ImplicitTLS pero no obtuve resultados favorables. Acá está el link:
http://www.experts-exchange.com/Programmin...Q_21333608.html
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #5 en:
Jueves 22 de Septiembre de 2005, 16:06 »
0
Pero no entiendo yo uso este codigo para enviar mensajes y funciona bien
dejanos ver tu codigo
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #6 en:
Jueves 22 de Septiembre de 2005, 16:18 »
0
Ugh es raro... yo justamente copié y pegué tu código y le cambié el valor del host por smtp.gmail.com el puerto por 587, después el user por
razor.ar@gmail.com
el password por el mio y los datos del mensaje como indicaste vos. En todo caso, no podrías enviarme en un zip/rar un ejemplo donde a vos te ande (vos lo probaste también con el de Gmail?).
Saludos, Gonzalo.
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #7 en:
Jueves 22 de Septiembre de 2005, 16:36 »
0
Citar
En AuthType no existe el valor atLogin
Hello, comando acabo de mirar en delphi Vs 5 la componente IdSMTP1 y si tiene en la propiedad AuthenticationType el valo atlogin y ademas tiene la atnone
Changos que pasa???
, hechale otra revisadita, es mas usa el codigo que te di y seguo funciona
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #8 en:
Jueves 22 de Septiembre de 2005, 16:40 »
0
Uhm, es raro. Tengo el Delphi 7 y Indy 10. Acá dejo un screen del componente SMTP y los valores de la propiedad AuthType.
Y si quiero usar ése código me dice que no encuentra ese valor en la propiedad AuthType lógicamente
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #9 en:
Jueves 22 de Septiembre de 2005, 17:20 »
0
mmmm ya veo, tienes toda la maldita razon de nada te sirve mi codigo hecho para versiones 5 y 4 (no se las demas) con componentes indy de inferior version
.
Pues estuve dando una vueltica por la superautopista de la informacio
y encontre este codigo para enviar mensajes de correo con autenticacion con componentes indy y con la version de delphi 7
asi que somo ultimo recurso te la posteo y espero que esta vez tengamos los dos mejor suerte:
Código: Text
var
i:integer;
begin
Memo.Lines.Add('Verificando el Usuario...');
form6.ShowModal;
if(Form6.Desconectar=0) Then
begin
Memo.clear;
//Autentificación en el servidor
IdSMTP1.AuthenticationType :=atLogin;
IdSMTP1.Username := trim(txtUsuario.Text);
IdSMTP1.Password :=trim(txtclave.Text);
// Nombre del Servidor ...
IdSMTP1.Host:=trim( txtServidor.Text );
// Puerto de correo ...
IdSMTP1.Port:=25;
try
Memo.Lines.Add('Conectando con ' + trim( txtServidor.Text ) + ', puerto 25' );
// Conectando ...
IdSMTP1.Connect;
Except
// Imposible conectar con el servidor de correo ...
Memo.lines.add('Fallo en la conexion con el servidor SMTP.');
Exit;
end;
Memo.lines.add( 'Componiendo mail ...' );
with Mensaje do begin
// Dirección origen ...
if ( trim( txtDe.Text ) <> '' ) then
From.Text:= trim( txtDe.Text )
else
From.Text:='desconocido@anonimo.dominio';
Memo.lines.add( 'Direccion origen : ' + From.Text );
// Dirección destino. Se pueden indicar varias ...
Recipients.EMailAddresses:=( trim( txtPara.Text ) );
Memo.lines.add( 'Dirección destino : ' + trim( txtPara.Text ) );
// Direcciones copia. Se pueden indicar varias ...
if( trim( txtCC.Text ) <> '' ) then begin
CClist.EMailAddresses:=( trim( txtCC.Text ) );
Memo.lines.add( 'CC : ' + trim( txtCC.Text ) );
end;
// Titulo del mail ...
if( trim( txtAsunto.Text )='' ) then
subject:='[Sin titulo]'
else
subject:= trim( txtAsunto.Text );
Memo.lines.add( 'Asunto : ' + subject );
// Adjuntos. Se pueden indicar varios ...
if ( trim( txtAdjunto.Text ) <> '') then
begin
TIdAttachment.Create(Mensaje.MessageParts,txtAdjunto.Text );
Memo.lines.add( 'Archivo Adjunto : ' + trim( txtAdjunto.text ) );
end;
if(MemoAdjunto.Visible=true) then
begin
for i:=0 to MemoAdjunto.Lines.Count-1 do
TIdAttachment.Create(Mensaje.MessageParts,MemoAdjunto.Lines[i] );
Memo.lines.Add( 'Archivos Adjuntos :');
Memo.lines.AddStrings( MemoAdjunto.Lines );
end;
// Cuerpo del mail ...
if ( mCuerpo.Lines.Count > 0 ) then begin
body.Assign(mCuerpo.Lines);
Memo.lines.add( 'Añadiendo cuerpo del E-mail ...' );
Memo.lines.add( ' ' );
end;
Memo.lines.add( 'Enviando ... ');
// Enviando mail ...
if ( trim( txtPara.Text ) <> '' ) then begin
IdSmtp1.Send(mensaje);
Memo.lines.add( 'E-Mail enviado.');
end else
Memo.lines.add( 'E-Mail no enviado, no se especificó dirección de destino.' );
// Desconectando ...
IdSmtp1.Disconnect;
end;
Memo.lines.add( 'Desconectado');
obviamente es un codigo para que te guies, pero lo he visto todo y me parece de peluche
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #10 en:
Jueves 22 de Septiembre de 2005, 17:27 »
0
Muchísimas gracias, ahora me tengo que ir a la escuela, pero cuando vuelvo lo pruebo y posteo los resultados que tuve
Saludos, Gonzalo.
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #11 en:
Jueves 22 de Septiembre de 2005, 17:39 »
0
Perfecto, por que no tengo como probarlo y serviria mucho para los demas, pero te queria comentar algo y es que en lo posible no pidas un codigo hecho, estoy colocando un codigo hecho por que no manejo el concepto de enviar email en versiones de delphi superiores a la 5... pero pa la proxima puede que no sea asi es decir que nunca coloque una sola linea de codigo si no que simplemente te indique como podria hacerce las cosas, vale???
.
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #12 en:
Jueves 22 de Septiembre de 2005, 20:38 »
0
Sisi, no hay problema. Yo pregunté (tal vez no lo tendría que haber hecho y haber investigado más por mi cuenta) porque no conosco nada sobre el tema de la implementación del TLS en las a servidores SMTP y había leído que se hacía así como lo estaba haciendo yo pero se ve que algo estaba haciendo mal o me faltaba (éso lo leí en la Knowledge Base de Indy). Ahora lo pruebo y me fijo si anda.
Saludos, Gonzalo.
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #13 en:
Jueves 22 de Septiembre de 2005, 21:03 »
0
Bueno, lo probé pero es prácticamente lo mismo que el que me habías dado vos y se ve que es para una versión anterior de Indy a la que tengo yo (debe ser para la 9). Ahora estoy intentando probar con otro servidor de smtp (hotpop.com). Espero tener mejor suerte.
Saludos, Gonzalo.
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #14 en:
Jueves 22 de Septiembre de 2005, 21:29 »
0
Bien por ti OK, aunque si estas muy afanado bajate de version de Indy jejejeje
, no mentiras es por molestar, trabaja y cuentanos como se hace para los proximos que vengamos a averiguar lo mismo.
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #15 en:
Jueves 22 de Septiembre de 2005, 21:38 »
0
Bueno, malas noticias de nuevo. Éste servidor de SMTP sólo requiere el usuario y contraseña como autenticación, no usa SSL (dice que no marquemos la opción secure authentication y dejemos SSL use en "never") así que sólo puse esos datos en el IdSMTP, le puse de host "smtp.hotpop.com", puerto 25, user
3dgsms@HotPOP.com
[/b]
*
Outgoing/SMTP Server: smtp.hotpop.com, port 25*
* Email Address:
3dgsms@HotPOP.com
(or any other email address you have)
* Leave Messages on server: false (some clients will instead have a "Delete messages from server" option, which should be set to true).
* Maximum Message Size: 500 KB
* Mailbox Size: 10 MB
* Mailbox Usage: 0% (0.0 KB)
*HotPOP's outgoing (SMTP) mail server requires authentication. The username and password are the same as the POP Server and website. Do not select "secure" password authentication.
[/quote]
En fin, ya no sé que será, voy a probar con un set de componentes Indy más viejo a ver qué pasa.
Saludos, Gonzalo.
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #16 en:
Jueves 22 de Septiembre de 2005, 22:05 »
0
Bueno, mirando otros threads de éste subforo vi que había un sitio de Delphi acá en Argentina (
www.delphi.com.ar
) así que me puse a buscar threads sobre éste tema y aparentemente todos lo mandan como me pusiste vos (creo que el código que me diste era de ahí también) así que no sé, tendré que buscar algún otro servidor SMTP que no me de problemas. Vos alguna vez enviaste mails por Delphi con un servidor SMTP que no requiera SSL o TLS?
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #17 en:
Jueves 22 de Septiembre de 2005, 22:28 »
0
No, pero alfin no te bajaste de version del Indy???
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #18 en:
Jueves 22 de Septiembre de 2005, 22:30 »
0
Ah sí, me olvidé de comentarlo. Me bajé la 9, la instalé todo bien, hice el programita, configuré todo, se conectó al server, apreté el botón para mandar el mail y me quedo esperando un mensaje de error pero no aparece. Me emocioné y pensé que había mandado el mail pero no, voy a la casilla y no había llegado, mandé a 3 casillas diferentes (en diferentes servers) y tampoco llegaron. Es rarísimo. Por eso estoy tratando de conseguir otro servidor SMTP para descartar eso.
Saludos, Gonzalo.
/EDIT: me fijé recién de nuevo el mail y llegó!!!
Qué raro la verdad, con el Indy 10 no me anduvo pero con el Indy 9 sí, poniendo atLogin en la autenticación :S La verdad que es muy extraño. Tal vez en Indy 10 se hará de otra manera.
Muchísimas gracias por la ayuda bartolomeo
bartolomeo
Miembro MUY activo
Mensajes: 207
Re: Problema Al Enviar Mails
«
Respuesta #19 en:
Jueves 22 de Septiembre de 2005, 23:17 »
0
Pues muchas felicitaciones, pero si hay que mirar que pasa en la version 10 de los indy, solo para no quedarnos con la espinita vale??
Me alegra mucho es el hilo mas largo que he respondido y me siento satisfecho
Suerte
ahhh y te esperamos para ayudarte nuevamente
[size=109]
Por que Rolo soy yo¡¡¡¡¡
[/size]
RazoR
Nuevo Miembro
Mensajes: 20
Re: Problema Al Enviar Mails
«
Respuesta #20 en:
Jueves 22 de Septiembre de 2005, 23:20 »
0
Jeje si, gracias de nuevo por toda la ayuda
Cuando termine el programita que estoy haciendo voy a volver a instalar el Indy 10 y ponerme a investigar cómo se hace ésto en dichar versión porque no puede quedar así
Saludos, Gonzalo.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Delphi
»
Problema Al Enviar Mails