PDA

Ver la Versión Completa : Autenticacion de Google Mail


Emilio_82
12-09-2008, 21:41:29
Hola,

Tengo una aplicacion en la que quiero enviar mails. (NO HACER SPAM) Sino enviar mail a proveedores. Lo que quiero es que no pase a traves de outlook sino que de la misma aplicacion los envie.

Uso en el Form un TIdSMTP y TIdMessage de Indi. Y para enviar tengo el siguiente código.


procedure TForm_EnviarXMail.Btn_EnviarClick(Sender: TObject);
var
Mail: Variant;
ArchivoAdjunto: boolean;
begin

StatusMemo.Clear;

//setup SMTP
SMTP.Host := Host;
SMTP.Port := 465;

//setup mail message
MailMessage.From.Address := From;
MailMessage.Recipients.EMailAddresses := E_Para.Text; //+ ',' + ledCC.Text;

MailMessage.Subject := E_Asunto.Text;
MailMessage.Body.Text := E_Cuerpo.Text;

if FileExists(ledAttachment.Text) then
TIdAttachment.Create(MailMessage.MessageParts, ledAttachment.Text);

//send mail
try
try
SMTP.Connect(1000);
SMTP.Send(MailMessage);
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;

Enviado:= True;
end;


Obviamente lo tome de un ejemplo. las variables están bien cargadas.
Pasa que google como casi todos los servidores necesitan autenticación.

¿Como autentico sin usar outlook?

Gracias desde ya por las respuestas.

AzidRain
12-09-2008, 21:59:26
Te falta poner algo en las propiedades user y password de SMTP. Así como lo pusiste SMTP.Connect siempre te genera una excepción pues no indicas ni usuario ni contraseña.

Emilio_82
12-09-2008, 23:15:14
Le agregue las lineas


SMTP.Username:=From;
SMTP.Password:=Pwd;


antes de


SMTP.Connect(1000);


Cuando probe verificar en las cuentas si habia enviado no llego nada.

¿Que puede estar fallando?

AzidRain
12-09-2008, 23:23:29
tienes que activar el acceso POP (que es el que usa indy) en GMail para que te permita entrar, por defecto utiliza IMAP.

Emilio_82
12-09-2008, 23:44:50
Ya debo caer pesado, pero configure todo y me tira los sig.

EIDProtocolReplyError:
ERROR: 5.7.0 Must issue a STARTTLS command first. 4sm14204246yxq.9

El AuthenticatioType los puse en atLogin

Outgoing Mail (SMTP) Server - requires TLS:

smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587

JXJ
13-09-2008, 19:58:09
emilio_82

prueba con el demo que hizo roman


http://www.clubdelphi.com/foros/showthread.php?t=40611&highlight=gmail

para acceder a gmail necesitas usar ssl.