Programación General > Delphi

 Problema Al Enviar Mails

(1/5) > >>

RazoR:
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 :hola:

Neko-sama:
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:
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:
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  :hola:

RazoR:
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 :D

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

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa