Fórum Como enviar e-mail com autenticação???????? #230008
05/05/2004
0
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
Curtir tópico
+ 0Posts
05/05/2004
Radames
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
Gostei + 0
05/05/2004
Fabio.hc
Gostei + 0
05/05/2004
Emerson Nascimento
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.
Gostei + 0
05/05/2004
Emerson Nascimento
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.
Gostei + 0
05/05/2004
Infohelp
Obrigado!!!
Gostei + 0
05/05/2004
Emerson Nascimento
//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]
Gostei + 0
05/05/2004
Infohelp
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;
Gostei + 0
06/05/2004
Infohelp
Gostei + 0
06/05/2004
Nerdex
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...
Gostei + 0
06/05/2004
Infohelp
poderia me passar exatamente um exemplo e quais componentes adicionar?
Obrigado
Gostei + 0
06/05/2004
Fabio.hc
{ Senha do usuário }
IdSMTP1.Password := ´senha´;
{ Autenticação }
IdSMTP1.AuthenticationType:=atLogin;Gostei + 0
07/05/2004
Infohelp
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!!
Gostei + 0
07/05/2004
Infohelp
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!!
Gostei + 0
07/05/2004
Fabio.hc
IdMsgSend.Subject := edit2.Text;
IdMsgSend.Body.Text := ´?????????????????´;
Vc pode usar um memo.
[b:e092ab7985]IdMsgSend.Body:=Memo1.Lines;[/b:e092ab7985]
Gostei + 0
07/05/2004
Nerdex
é assim:
IdMsgSend.Body.Add(Memo.Lines.Text);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)