Preciso de ajuda para enviar e-mail usando TIdSMTP (Indy)
Olá colegas,
estou tentando enviar um e-mail usando o componente TIdSMTP (Indy). Só que quando dou comando [b:bf7b1afa10]Send[/b:bf7b1afa10] ocorre o seguinte erro:
Alguém sabe como resolver isso???
Obrigado
Roberto
estou tentando enviar um e-mail usando o componente TIdSMTP (Indy). Só que quando dou comando [b:bf7b1afa10]Send[/b:bf7b1afa10] ocorre o seguinte erro:
Project smtp.exe raised exception class EIdProtocolReplyError with message ´530 5.7.0 Must issue a STARTTLS command first´.
Alguém sabe como resolver isso???
Obrigado
Roberto
Tenil
Curtidas 0
Respostas
Faelcavalcanti
30/03/2005
Se o seu provedor, via protocolo SMTP, necessitar de autenticação, configure as informações de host inclusive password e depois coloque a propriedade [b:67636db62a]AuthenticationType[/b:67636db62a] para [b:67636db62a]atLogin[/b:67636db62a].
Falow!
Falow!
GOSTEI 0
Tenil
30/03/2005
[b:d2d9bcd13a]faelcavalcanti[/b:d2d9bcd13a], eu fiz isso. Veja o código:
Estou conseguindo conectar no servidor.
O erro ocorre na linha [b:d2d9bcd13a]SMTP.Send(IdMsgSend);[/b:d2d9bcd13a].
Muuuuuuito estranho...
// Mensagem IdMsgSend.Subject := ´teste de email´; IdMsgSend.Body.Text := ´Teste de Email´; // Remetente idMsgSend.From.Address := ´from@ficticio.com.br´; idMsgSend.From.Name := ´Roberto´; //IdMsgSend.ReplyTo.EMailAddresses := ´from@ficticio.com.br´; // Destinatario IdMsgSend.Recipients.EMailAddresses := ´para@ficticio.com.br´; // Autenticacao - Use apenas quando o servidor exigir SMTP.AuthenticationType := atLogin; SMTP.UserId := ´teste@ficticio.com.br´; SMTP.Password := ´ficticio´; // Dados do Servidor SMTP.Host := ´smtp.ficticio.com.br; SMTP.Port := 25; SMTP.Connect; try SMTP.Send(IdMsgSend); finally SMTP.Disconnect; end;
Estou conseguindo conectar no servidor.
O erro ocorre na linha [b:d2d9bcd13a]SMTP.Send(IdMsgSend);[/b:d2d9bcd13a].
Muuuuuuito estranho...
GOSTEI 0
Faelcavalcanti
30/03/2005
Cara sobre o objeto IDMessage, verifica se a propriedade [b:31f6d198fa]ContentType[/b:31f6d198fa] está setado para text/html, ou text/plain, isto é o que ele irá cuspir para o conteúdo da página, ou seja, o Body. Mechesse nas configurações de Buffer, têm que estar setados para 32768, tanto para [b:31f6d198fa]in[/b:31f6d198fa] como [b:31f6d198fa]out[/b:31f6d198fa]. Faiz um teste também se você consegue pingar o seu host.
GOSTEI 0
Rjun
30/03/2005
Pesquisando na internet achei isso :
I am using the TIdSMTP but when I try to send mail I get an error message such as: ´530 Must issue a STARTTLS command first´
Previous Top Next
This message means that the SMTP server requires you to use TLS when authenticating and sending E-Mail. The server expects you to use explicit TLS SMTP. For this, you connect to port 25, issue an EHLO command and get a reply, send a STARTTLS command, and after getting a success reply, you then negotiate TLS with the server.
For Indy 8 and 9
Indy 8 and Indy 9 do not support explicit TLS with SMTP. If the SMTP server supports implicit TLS with SMTP, you may able to use implicit TLS with SMTP by stting the TIdSMTP.IOHandler to TIdSSLIOHandlerSocket and the port to the IdPORT_ssmtp constant in IdAssignedNumbers (465).
For Indy 10
Indy 10 supports SMTP with explicit TLS. In the Indy 10´s TIdSMTP, you simply have to assign a TIdSSLIOHandlerSocketBase descendent to the TIdSMTP.IOHandler property and set the UseTLS property to either utUseRequireTLS if you do not want to use an unencrypted connection or utUseExplicitTLS if you are willing to use an unencrypted connection.
http://www.indyproject.org/KB/index.html?smtpmuststarttls.htm
Rogério
I am using the TIdSMTP but when I try to send mail I get an error message such as: ´530 Must issue a STARTTLS command first´
Previous Top Next
This message means that the SMTP server requires you to use TLS when authenticating and sending E-Mail. The server expects you to use explicit TLS SMTP. For this, you connect to port 25, issue an EHLO command and get a reply, send a STARTTLS command, and after getting a success reply, you then negotiate TLS with the server.
For Indy 8 and 9
Indy 8 and Indy 9 do not support explicit TLS with SMTP. If the SMTP server supports implicit TLS with SMTP, you may able to use implicit TLS with SMTP by stting the TIdSMTP.IOHandler to TIdSSLIOHandlerSocket and the port to the IdPORT_ssmtp constant in IdAssignedNumbers (465).
For Indy 10
Indy 10 supports SMTP with explicit TLS. In the Indy 10´s TIdSMTP, you simply have to assign a TIdSSLIOHandlerSocketBase descendent to the TIdSMTP.IOHandler property and set the UseTLS property to either utUseRequireTLS if you do not want to use an unencrypted connection or utUseExplicitTLS if you are willing to use an unencrypted connection.
http://www.indyproject.org/KB/index.html?smtpmuststarttls.htm
Rogério
GOSTEI 0
Tenil
30/03/2005
Passos executados durante a conexão e o envio.
Resolving hostname smtp.gmail.com.
Connecting to 64.233.171.109.
Connected.
[b:e29aa373be]Aqui ocorre o erro: [u:e29aa373be]SMTP.Send(IdMsgSend)[/u:e29aa373be] - Project smtp.exe raised exception class EIdProtocolReplyError with message ´530 5.7.0 Must issue a STARTTLS command first´.[/b:e29aa373be]
Disconnecting from 64.233.171.109.
Not connected.
Resolving hostname smtp.gmail.com.
Connecting to 64.233.171.109.
Connected.
[b:e29aa373be]Aqui ocorre o erro: [u:e29aa373be]SMTP.Send(IdMsgSend)[/u:e29aa373be] - Project smtp.exe raised exception class EIdProtocolReplyError with message ´530 5.7.0 Must issue a STARTTLS command first´.[/b:e29aa373be]
Disconnecting from 64.233.171.109.
Not connected.
GOSTEI 0
Faelcavalcanti
30/03/2005
Pesquisando na internet achei isso :
I am using the TIdSMTP but when I try to send mail I get an error message such as: ´530 Must issue a STARTTLS command first´
Previous Top Next
This message means that the SMTP server requires you to use TLS when authenticating and sending E-Mail. The server expects you to use explicit TLS SMTP. For this, you connect to port 25, issue an EHLO command and get a reply, send a STARTTLS command, and after getting a success reply, you then negotiate TLS with the server.
For Indy 8 and 9
Indy 8 and Indy 9 do not support explicit TLS with SMTP. If the SMTP server supports implicit TLS with SMTP, you may able to use implicit TLS with SMTP by stting the TIdSMTP.IOHandler to TIdSSLIOHandlerSocket and the port to the IdPORT_ssmtp constant in IdAssignedNumbers (465).
For Indy 10
Indy 10 supports SMTP with explicit TLS. In the Indy 10´s TIdSMTP, you simply have to assign a TIdSSLIOHandlerSocketBase descendent to the TIdSMTP.IOHandler property and set the UseTLS property to either utUseRequireTLS if you do not want to use an unencrypted connection or utUseExplicitTLS if you are willing to use an unencrypted connection.
http://www.indyproject.org/KB/index.html?smtpmuststarttls.htm
Rogério
Era bom você se certificar disto também. Provalvelmente você deverá verificar se as suas informações estão concisas em relação ao envio para o protocolo a partir de seu servidor especificado. Os provedores aderiram a isto, de forma a diminuir os spams, e deu muito certo. Caso ainda tenha dúvidas contate informações técnicas com o seu provedor para saber se ele dispõe do serviço disponível para que você possa utililá-lo a partir do protocolo SMTP.
Espero ter ajudado!
GOSTEI 0
Rjun
30/03/2005
Bom, é o seguinte :
Para o gmail, a porta de envio é 465, além de requerer uma conexão criptografada (SSL)
Rogério
Para o gmail, a porta de envio é 465, além de requerer uma conexão criptografada (SSL)
Rogério
GOSTEI 0
Massuda
30/03/2005
Pesquisando na internet achei isso...
Para seguir o que foi sugerido, você vai precisar de instalar o suporte a SSL no Indy. Para fazer isso, dê uma olhada [url=http://forum.clubedelphi.net/viewtopic.php?t=59187]neste tópico[/url] do fórum.GOSTEI 0
Tenil
30/03/2005
Pesquisando na internet achei isso :
For Indy 8 and 9
Indy 8 and Indy 9 do not support explicit TLS with SMTP. If the SMTP server supports implicit TLS with SMTP, you may able to use implicit TLS with SMTP by stting the TIdSMTP.IOHandler to TIdSSLIOHandlerSocket and the port to the IdPORT_ssmtp constant in IdAssignedNumbers (465).
Ou seja, depende do meu servidor (estou usando o gmail, da google), e o Indy 8 neste caso dancei.
Mesmo se o servidor aceitar a conexão, não sei como utilizar essas informações para tornar o meu programa funcional.
GOSTEI 0
Massuda
30/03/2005
... não sei como utilizar essas informações para tornar o meu programa funcional.
Este é o procedimento para instalar o suporte a SSL no Indy (você vai precisar disso para ter o componente TIdSSLIOHandlerSocket):[list:34474749ec][*:34474749ec]Vá no site [url=http://indy.fulgan.com/SSL/]indy.fulgan.com/SSL[/url][*:34474749ec]Baixe o arquivo indy_OpenSSL096m.zip[*:34474749ec]Deszipe esse arquivo em qualquer pasta/diretório.[*:34474749ec]Copie/mova as duas DLLs para a pasta/diretório onde está seu programa.[/list:u:34474749ec]No seu projeto Delphi, faça o seguinte:[list:34474749ec][*:34474749ec]No mesmo form onde está o componente TIdSMTP, inclua um componente [b:34474749ec]TIdSSLIOHandlerSocket[/b:34474749ec] (está na aba Indy I/O Handlers)[*:34474749ec]Usando o Object Inspector, atribua à propriedade [b:34474749ec]IOHandler[/b:34474749ec] do TIdSMTP o TIdSSLIOHandlerSocket recém colocado no form.[*:34474749ec]Atribua o valor 465 à propriedade Port do TIdSMTP.[*:34474749ec]Recompile seu programa[/list:u:34474749ec]Você terá que incluir na instalação do seu programa as duas DLLs que você baixou (libeay32.dll e ssleay32.dll).Esse procedimento é parecido com o usado para incluir suporte a sites seguros usando o TIdHTTP.
GOSTEI 0
Tenil
30/03/2005
No mesmo form onde está o componente TIdSMTP, inclua um componente TIdSSLIOHandlerSocket (está na aba Indy I/O Handlers)
Segui todos os passos e não tem esse componente [i:059e67c630][b:059e67c630]TIdSSLIOHandlerSocket[/b:059e67c630][/i:059e67c630] (uso o Delphi 6 com indy 8 ).
Devo copiar as DLLs para o diretório o meu projeto ou para o diretório do Delphi???
GOSTEI 0
Tenil
30/03/2005
Em todo o caso, inclui as DLLs tanto na pasta do Delphi quanto na pasta do meu programa.
Kramba, que dificulidade...
Agradeço a paciência que todos estão tendo comigo., :D
Kramba, que dificulidade...
Agradeço a paciência que todos estão tendo comigo., :D
GOSTEI 0
Faelcavalcanti
30/03/2005
[quote:5ac91b74e7=´Massuda´]No mesmo form onde está o componente TIdSMTP, inclua um componente TIdSSLIOHandlerSocket (está na aba Indy I/O Handlers)
Segui todos os passos e não tem esse componente [i:5ac91b74e7][b:5ac91b74e7]TIdSSLIOHandlerSocket[/b:5ac91b74e7][/i:5ac91b74e7] (uso o Delphi 6 com indy 8 ).
Devo copiar as DLLs para o diretório o meu projeto ou para o diretório do Delphi???[/quote:5ac91b74e7]
Cara, estou usando a versão v.9.0.0.14 e já possui o componente [b:5ac91b74e7]TIdSSLIOHandlerSocket[/b:5ac91b74e7], na aba de componentes [b:5ac91b74e7]Indy I/O Handlers[/b:5ac91b74e7]. Inclusive ele dá suporte tanto para [b:5ac91b74e7]Client[/b:5ac91b74e7] como para [b:5ac91b74e7]Server[/b:5ac91b74e7].
:wink:
Falow!
GOSTEI 0
Massuda
30/03/2005
...estou usando a versão v.9.0.0.14 e já possui o componente [b:a4fdfb33e1]TIdSSLIOHandlerSocket[/b:a4fdfb33e1], na aba de componentes [b:a4fdfb33e1]Indy I/O Handlers[/b:a4fdfb33e1]...
Desculpe... você tem razão, eu escrevi errado... :oops: O componente TIdSSLIOHandlerSocket faz parte do Indy 9, mas você precisa das DLLs para poder utilizá-lo. Se você der uma olhada na unit IdSSLOpenSSLHeaders, verá que essas DLLs são carregadas dinamicamente pelo Indy quando necessário; se tentar usar SSL sem as DLLs, gera um erro.
GOSTEI 0
Tenil
30/03/2005
Fiz o download da versão 9 e 10 do Indy, só que lá tem um alerta para que se instale primeiro o Service Pack 2 do Delphi 6. Como minha cópia é pir... ou melhor, versão educacional :D, não consegui fazer download do Service Pack do Delphi...
[url]http://www.atozed.com/indy/plus/Files.iwp[/url]
Indy Plus Files
Delphi 6
Indy requires both Service Pack 2 and RTL Update 3 Delphi 6 patches to be installed. If you receive the following error: ´InGlobal was compiled with a different version of System.rtl´, make sure you have Delphi 6 Update Pack 2 Installed. If you installed it previously, reinstall it.
Nossa... tow quase desistindo... :(
[url]http://www.atozed.com/indy/plus/Files.iwp[/url]
Indy Plus Files
Delphi 6
Indy requires both Service Pack 2 and RTL Update 3 Delphi 6 patches to be installed. If you receive the following error: ´InGlobal was compiled with a different version of System.rtl´, make sure you have Delphi 6 Update Pack 2 Installed. If you installed it previously, reinstall it.
Nossa... tow quase desistindo... :(
GOSTEI 0
Massuda
30/03/2005
Fiz o download da versão 9 e 10 do Indy...
Sugiro que você instale a versão 9, já que a versão 10 é um ´trabalho em andamento´. Teve [url=http://forum.clubedelphi.net/viewtopic.php?t=57069]este tópico[/url] no fórum sobre como instalar o Indy 9 no D6 que talvez seja útil para você.GOSTEI 0
Tenil
30/03/2005
Colocando um [b:5e7986cd74];[/b:5e7986cd74] (ponto e vírgula) no assunto, será que a versão 7 do Delphi já vem com a versão 9 do Indy?
Tenho o CD do D7 aqui.
Outra coisa, posso ter o D6 e o D7 instalado na máquina sem problemas???
Valews
Tenho o CD do D7 aqui.
Outra coisa, posso ter o D6 e o D7 instalado na máquina sem problemas???
Valews
GOSTEI 0
Massuda
30/03/2005
será que a versão 7 do Delphi já vem com a versão 9 do Indy?
Não tenho certeza, mas acho que sim. Mas mesmo assim, seria recomendável usar a versão mais recente (a que você baixou do site) do que a versão que vem com o Delphi. Nesse caso, o procedimento para instalar é parecido com o descrito no tópico que citei no post anterior.posso ter o D6 e o D7 instalado na máquina sem problemas???
Sim.GOSTEI 0
Tenil
30/03/2005
Após este erro de percurso: [b:afe91ce5ed][url=http://forum.clubedelphi.net/viewtopic.php?t=60911&highlight=]´Meu programa deu erro depois que instalei o Service pack 2´[/url][/b:afe91ce5ed], retornei a este projeto.
Quero dizer que, após a ajuda de vocês, o programa funcionou corretamente. Consegui enviar os e-mail usando o G-Mail.
[b:afe91ce5ed]Meu próximo desafio será fazer com que não seja necessária a configuração do servidor de envio.[/b:afe91ce5ed] Sei que isso é possível, vou dar uma pesquisada no fórum para ver se este assunto já foi discutido.
Obrigado a todos.
Att,
Roberto
Quero dizer que, após a ajuda de vocês, o programa funcionou corretamente. Consegui enviar os e-mail usando o G-Mail.
[b:afe91ce5ed]Meu próximo desafio será fazer com que não seja necessária a configuração do servidor de envio.[/b:afe91ce5ed] Sei que isso é possível, vou dar uma pesquisada no fórum para ver se este assunto já foi discutido.
Obrigado a todos.
Att,
Roberto
GOSTEI 0
Tenil
30/03/2005
Gostaria de botar um ´;´ neste tópico e começar a discutir um novo assunto, que está relacionado a este.
[url=http://forum.clubedelphi.net/viewtopic.php?t=61137&start=0&postdays=0&postorder=asc&highlight=][b:65802ba6b6]Ajuda para enviar e-mail usando IdSMTPServer (Indy)[/b:65802ba6b6][/url]
Att,
Roberto
[url=http://forum.clubedelphi.net/viewtopic.php?t=61137&start=0&postdays=0&postorder=asc&highlight=][b:65802ba6b6]Ajuda para enviar e-mail usando IdSMTPServer (Indy)[/b:65802ba6b6][/url]
Att,
Roberto
GOSTEI 0
Tolimpio
30/03/2005
Ola pesoal... tambem estou com o mesmo problema.
Ja tentei de tudo, o problema e esse SSL... ja fiz o download das dll´s como a recomendacao de voces....
gostaria de saber de vcs... c vcs poderiam me mandar um exmeplo da cinfiguracao de voces..........
o ero agora esta na unit IdSSLopenSSL, na
[b:acafbcd246]procedure TIdSSLIOHandlerSocket.OpenEncodedConnection
begin
.
.
fSSLSocket.Connect(Binding.Handle, fSSLContext);
end;[/b:acafbcd246]
no fSSLContext sao os parametros do tIdSSLIOHandlerSocket. Provavelmente estou deixando de confifurar alog. Poderiam pelo menos dizer quais os atributos que devo configurar desse componente ???
Estou tentado enviar para o gmail. E se pudesse me confirmar qual o numero da porta smtp vcs conseguiu.....
Abcs........
Ja tentei de tudo, o problema e esse SSL... ja fiz o download das dll´s como a recomendacao de voces....
gostaria de saber de vcs... c vcs poderiam me mandar um exmeplo da cinfiguracao de voces..........
o ero agora esta na unit IdSSLopenSSL, na
[b:acafbcd246]procedure TIdSSLIOHandlerSocket.OpenEncodedConnection
begin
.
.
fSSLSocket.Connect(Binding.Handle, fSSLContext);
end;[/b:acafbcd246]
no fSSLContext sao os parametros do tIdSSLIOHandlerSocket. Provavelmente estou deixando de confifurar alog. Poderiam pelo menos dizer quais os atributos que devo configurar desse componente ???
Estou tentado enviar para o gmail. E se pudesse me confirmar qual o numero da porta smtp vcs conseguiu.....
Abcs........
GOSTEI 0