GARANTIR DESCONTO

Fórum Como enviar e-mail com autenticação???????? #230008

05/05/2004

0

COMO ENVIAR e-mail com autenticação????????

Olá pessoal tentei montar um aplicativo para enviar email mas retorna
um erro pois a conta exige autenticação, uso o yahoo, delphi6

Obrigado


Infohelp

Infohelp

Responder

Posts

05/05/2004

Radames

Caro amigo,

já tive este problema e resolvi com o componente WinshoesSMTP
o NMSMTP do delphi não autentica.

obs.procure na internet é fácil de encontrar pelo nome.

um abraço,



Jorge Radamés
Analista de sistemas
informatica@clinicacpi.com.br


Responder

Gostei + 0

05/05/2004

Fabio.hc

[url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=16047&start=0&postdays=0&postorder=asc&highlight=email]Dê uma olhada neste tópico. (clique aqui)[/url]


Responder

Gostei + 0

05/05/2004

Emerson Nascimento

O NMSMTP autentica sim.

o que você precisa fazer é receber e depois enviar.

ao receber você manda o nome de usuário e senha (o que faz a autenticação). depois é só receber, que já estará autenticado.


Responder

Gostei + 0

05/05/2004

Emerson Nascimento

[color=blue:6024c65fd8][b:6024c65fd8]Retificando e exemplificando:[/b:6024c65fd8][/color:6024c65fd8]

Para autenticar você precisa receber antes.

Instancie um componente NMPOP3 (se já não estiver instanciado).

NMPOP31.AttachFilePath := ´.´;
NMPOP31.DeleteOnRead := FALSE;
NMPOP31.ReportLevel := Status_Basic;
NMPOP31.TimeOut := 20000;
NMPOP31.Host := ´pop3.uol.com.br´;
NMPOP31.Port := 110;
NMPOP31.UserID := ´SeuLogin´;
NMPOP31.Password := ´SuaSenha´;
NMPOP31.Connect; // conecta e autentica.

if not NMPOP31.Connected then
begin
Alguma Mensagem...
end;

agora basta [b:6024c65fd8]enviar[/b:6024c65fd8] as mensagens com o NMSMTP que já estará autenticado.

creio que seja mais fácil do que trocar os componentes.


Responder

Gostei + 0

05/05/2004

Infohelp

Pode me passar um exemplo!!

Obrigado!!!


Responder

Gostei + 0

05/05/2004

Emerson Nascimento

Coloque um componente NMPOP3 antes dos comandos do NMSMTP:

//Processo de reconhecimento no POP3 do UOL
NMPOP31.AttachFilePath := ´.´;
NMPOP31.DeleteOnRead := FALSE;
NMPOP31.ReportLevel := Status_Basic;
NMPOP31.TimeOut := 20000;
NMPOP31.Host := ´pop3.uol.com.br´; // seu servidor POP
NMPOP31.Port := 110;
NMPOP31.UserID := ´SeuLogin´;
NMPOP31.Password := ´SuaSenha´;
NMPOP31.Connect;
//Conexão não feita ele sai
//Conexão feita ele desconecta e prossegue
if not NMPOP31.Connected then exit else NMPOP31.Disconnect;

//Prosseguindo, ele agora tenta se conectar ao SMTP do UOL
NMSMTP1.ClearParams := TRUE;
NMSMTP1.Host := ´smtp.uol.com.br´ // seu servidor SMTP
NMSMTP1.Port := 25;
NMSMTP1.UserID := ´SeuLogin´
NMSMTP1.Connect;
//Conexão não feita ele sai
//Conexão feita ele prossegue
If not NMSMTP1.Connected then exit;

//Processo de envio
NMSMTP1.PostMessage.Body.Clear;
NMSMTP1.PostMessage.FromAddress := ´cliente@provedor.com.br´ // seu email
NMSMTP1.PostMessage.FromName := ´Seu Nome Completo´
NMSMTP1.PostMessage.Body.Add(´Teste de envio de email´);
NMSMTP1.PostMessage.Subject := ´Teste de Envio´;
NMSMTP1.PostMessage.ToAddress.Clear;
NMSMTP1.PostMessage.ToAddress.Add(´destino@provedordestino.com.br´); // email destino
NMSMTP1.PostMessage.ToAddress.Add(´destino2@provedordestino2.com.br´); // email destino
NMSMTP1.SendMail; // envia o email

Depois de estabelecer a conexão com o POP3 do provedor o envio pelo SMTP fica liberado, não importando em que provedor esteja conectado.

Nesse caso está sendo utilizado o POP3 e SMTP do UOL, porém vc pode simplesmente criar um e-mail no IG, IEG ou outro serviço de e-mail grátis e pronto é só utilizar a dica!

Note que nem todos os emails grátis têm serviço POP3.

[b:d8ef4e81dd]essa dica foi retirada do Delphi Dicas DTDelphi 2.6[/b:d8ef4e81dd]


Responder

Gostei + 0

05/05/2004

Infohelp

Authentication Failed!!!!! Range Check Error!!!!
me ajude!!!
ocorreu este erro, estou usando o yahoo veja:

procedure TForm1.Button1Click(Sender: TObject);
begin


//Processo de reconhecimento no POP3 do UOL
NMPOP31.AttachFilePath := ´.´;
NMPOP31.DeleteOnRead := FALSE;
NMPOP31.ReportLevel := Status_Basic;
NMPOP31.TimeOut := 20000;
NMPOP31.Host := ´pop.mail.yahoo.com.br´; // seu servidor POP
NMPOP31.Port := 110;
NMPOP31.UserID := ´seuemail@yahoo.com.br´;
NMPOP31.Password := ´suasenha´;
NMPOP31.Connect;
//Conexão não feita ele sai
//Conexão feita ele desconecta e prossegue
//if not NMPOP31.Connected then exit else NMPOP31.Disconnect;

//Prosseguindo, ele agora tenta se conectar ao SMTP do UOL
NMSMTP1.ClearParams := TRUE;
NMSMTP1.Host := ´smtp.mail.yahoo.com.br´; // seu servidor SMTP
NMSMTP1.Port := 25;
NMSMTP1.UserID := ´seuemail@yahoo.com.br´;
NMSMTP1.Connect;
//Conexão não feita ele sai
//Conexão feita ele prossegue
If not NMSMTP1.Connected then exit;

//Processo de envio
NMSMTP1.PostMessage.Body.Clear;
NMSMTP1.PostMessage.FromAddress := ´seuemail@yahoo.com.br´; // seu email
NMSMTP1.PostMessage.FromName := ´Infohelp!´;
NMSMTP1.PostMessage.Body.Add(´Teste de envio de email´);
NMSMTP1.PostMessage.Subject := ´Teste de Envio´;
NMSMTP1.PostMessage.ToAddress.Clear;
NMSMTP1.PostMessage.ToAddress.Add(´teste@bol.com.br´); // email destino
NMSMTP1.SendMail; // envia o email



end;


Responder

Gostei + 0

06/05/2004

Infohelp

Então alguem poderia me ajudar?????????????


Responder

Gostei + 0

06/05/2004

Nerdex

// faz autenticacao antes de enviar a mensagem
idSMTP1.AuthenticationType := [color=red:f9d46e5950]atLogin[/color:f9d46e5950];
// idSMTP1.AuthenticationType := atNone;
if not idSMTP1.Connected then
idSMTP1.Connect;
try
idSMTP1.Send(Msg);
finally
idSMTP1.Disconnect;
end;
:D
//[color=red:f9d46e5950](Msg) é o nome do componente idMessage[/color:f9d46e5950]
:shock:
[u:f9d46e5950]Só mais uma dica[/u:f9d46e5950]:
Não é necessário que se use o componente POP, como vi aí acima, basta o idMessage e idSMTP, somente, mas se queres deixar sua aplicação mais pesada... a escolha é sua...


Responder

Gostei + 0

06/05/2004

Infohelp

mas funcioana em delphi 6?
poderia me passar exatamente um exemplo e quais componentes adicionar?

Obrigado


Responder

Gostei + 0

06/05/2004

Fabio.hc

Eu troquei o Fastnet pelo Indy. No Indy consegui enviar um e-mail com uma conta que requer autenticação. Enviando emails usando o Indy [url=http://lib.seven.com.br/ampliar.asp?codcat=1&codartigo=477](Clique aqui)[/url]. e para autenticar.
     { Senha do usuário }
      IdSMTP1.Password := ´senha´;

      { Autenticação }
      IdSMTP1.AuthenticationType:=atLogin;



Responder

Gostei + 0

07/05/2004

Infohelp

Então, tudo bem certinho, mas simplifiquei, o que preciso é inserir um listbox ou um memo não sei qual o mais indicado para escrever um texto no email, veja que o destino e o assunto eu coloquei com edit.text mas como faço no IdMsgSend.Body.Text(texto do email) veja que no meu projeto abaixo falta isso



procedure TForm1.Button1Click(Sender: TObject);
var
begin

// Mensagem
IdMsgSend.Subject := edit2.Text;
IdMsgSend.Body.Text := ´?????????????????´;

// Remetente
idMsgSend.From.Address := ´meuemail@yahoo.com.br´;
idMsgSend.From.Name := ´infohelp´;
IdMsgSend.ReplyTo.EMailAddresses := ´meuemail@yahoo.com.br´;

// Destinatario
IdMsgSend.Recipients.EMailAddresses := edit1.text;

// Copias
//idMsgSend.CCList.EMailAddresses := ´teste@teste.com.br, teste@terra.com.br´;

// Copias Ocultas
//idMsgSend.BccList.EMailAddresses := ´teste@teste.com.br; teste@terra.com.br´;

// Anexa um arquivo
TIdAttachment.Create(idMsgSend.MessageParts,´e:\lixo\envia_email_ind\google.gif´);
// TIdAttachment.Create(idMsgSend.MessageParts,´c:\config.sys´);


// Autenticacao - Use apenas quando o servidor exigir
SMTP.AuthenticationType := atLogin;
SMTP.UserId := ´meulogin´;
SMTP.Password := ´minhasenha´;

// Dados do Servidor
SMTP.Host := ´smtp.mail.yahoo.com.br´;
SMTP.Port := 25;

SMTP.Connect;
try
SMTP.Send(IdMsgSend);
finally
SMTP.Disconnect;
end;
end;




muito obrigado pessoal!!


Responder

Gostei + 0

07/05/2004

Infohelp

Então, tudo bem certinho, mas simplifiquei, o que preciso é inserir um listbox ou um memo não sei qual o mais indicado para escrever um texto no email, veja que o destino e o assunto eu coloquei com edit.text mas como faço no IdMsgSend.Body.Text(texto do email) veja que no meu projeto abaixo falta isso



procedure TForm1.Button1Click(Sender: TObject);
var
begin

// Mensagem
IdMsgSend.Subject := edit2.Text;
IdMsgSend.Body.Text := ´?????????????????´;

// Remetente
idMsgSend.From.Address := ´meuemail@yahoo.com.br´;
idMsgSend.From.Name := ´infohelp´;
IdMsgSend.ReplyTo.EMailAddresses := ´meuemail@yahoo.com.br´;

// Destinatario
IdMsgSend.Recipients.EMailAddresses := edit1.text;

// Copias
//idMsgSend.CCList.EMailAddresses := ´teste@teste.com.br, teste@terra.com.br´;

// Copias Ocultas
//idMsgSend.BccList.EMailAddresses := ´teste@teste.com.br; teste@terra.com.br´;

// Anexa um arquivo
TIdAttachment.Create(idMsgSend.MessageParts,´e:\lixo\envia_email_ind\google.gif´);
// TIdAttachment.Create(idMsgSend.MessageParts,´c:\config.sys´);


// Autenticacao - Use apenas quando o servidor exigir
SMTP.AuthenticationType := atLogin;
SMTP.UserId := ´meulogin´;
SMTP.Password := ´minhasenha´;

// Dados do Servidor
SMTP.Host := ´smtp.mail.yahoo.com.br´;
SMTP.Port := 25;

SMTP.Connect;
try
SMTP.Send(IdMsgSend);
finally
SMTP.Disconnect;
end;
end;




muito obrigado pessoal!!


Responder

Gostei + 0

07/05/2004

Fabio.hc

// Mensagem
IdMsgSend.Subject := edit2.Text;
IdMsgSend.Body.Text := ´?????????????????´;


Vc pode usar um memo.
[b:e092ab7985]IdMsgSend.Body:=Memo1.Lines;[/b:e092ab7985]


Responder

Gostei + 0

07/05/2004

Nerdex

Fábio !! - seu maçaneta de Kombi...

é assim:
IdMsgSend.Body.Add(Memo.Lines.Text);


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar