Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Error 530 intentando mandar email con NMSMTP (https://www.clubdelphi.com/foros/showthread.php?t=20581)

xilef 19-04-2005 21:44:18

Error 530 intentando mandar email con NMSMTP
 
Hola, estoy intentando que mi aplicacion envie un email (practicando un poco) y me da este error:

'530.5.7.0 Must issue a STARTTLS command first'

el codigo es este:

Código:

NMSMTP1.Port:=25;
 NMSMTP1.Host:='smtp.gmail.com';
 NMSMTP1.UserID:= 'userid' ;
 if not (NMSMTP1.Connected) then
 NMSMTP1.Connect;
 NMSMTP1.PostMessage.FromAddress := 'email';
 NMSMTP1.PostMessage.FromName := 'nombre';
 NMSMTP1.PostMessage.Attachments.Text := 'ruta_al_archivo';
 NMSMTP1.PostMessage.Body.Text:= 'Prueba';
 NMSMTP1.SendMail;
 NMSMTP1.Disconnect;

¿Sabe alguien porque me pasa?He provado a cambiar la propiedad EncodeType de NMSMTP a uuMime y a uuCode, no se me ocurre nada mas.:rolleyes:

Un saludo y gracias.

dec 20-04-2005 01:51:34

El problema está en el uso del servidor SMTP de Gmail
 
Hola,

Desconozco cómo implementarlo en los componentes que mencionas, pero, me parece que el problema radica en que para enviar correos a través del Servidor SMTP de Gmail es preciso establecer una conexión segura, autentificarse y hacer uso de un puerto distinto del 25.

El error que recibes te indica concretamente lo primero que te comento, esto es, que tienes que hacer uso del "comando STARTTLS". Eso establecería (repito que no sé cómo hacerlo) una conexión segura. Luego tendrías que autentificarte y por último usar el puerto 465 ó 587 en lugar del 25.

Si buscas información en tu buscador favorito sobre el error que te aparece o sencillamente cómo hacer uso del Servidor SMTP de Gmail encontrarás alguna que tal vez pueda ayudarte a conseguir tu objetivo.

xilef 20-04-2005 19:30:48

Hola,

Gracias por responder tan pronto, he provado a poner el puerto 465 (sin cambiar nada del codigo, unicamente el puerto) y parece que funcione, pero al cabo de unos segundos me lanza este error:

'Socket readln aborted'

Alguien que me ayude por favor...:(

PD: Poniendo a 0 la propiedad TimeOut de NMSMTP consigo que no me de ningun error, pero no me llega el email...

PD2: Haciendo un netstat -na aparece 64.233.171.111:465 ESTABLISHED...asi que conectarse parece que si que se conecta...

Sotrono 21-04-2005 03:47:58

No vas a poder enviar mails con gmail utilizando el componente NMSMTP, porque para poder conectarte, gmail requiere STARTTLS y NMSMTP no lo soporta. Tenes que usar los componentes Indy. Te recomiendo bajarte los demos de las Indy. Hay uno que se llama SendMail.
Igualmente a ese demo lo vas a tener que modificar y agregarle un TIdSSLIOHandlerSocketOpenSSL.
Tambien te tenes que bajar las librerias OpenSSL y colocarlas en la misma carpeta que el ejecutable.

Si es la primera vez que intentas enviar mails te conviene elegir otro servidor con menos seguridad (seguridad = complejidad de conexion) para aprender bien como funciona y despues si proba con gmail.

Salu2...

xilef 22-04-2005 08:46:09

Hola,

Gracias pos responder tan rapido, ahora voy a intentar meterme con las Indy porque no las he usado en la vida y no se como se utilizaran...me bajare los demos y asi a ver si me entero mas...jejeje

Un saludo


La franja horaria es GMT +2. Ahora son las 01:56:35.

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