ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

servidor smtp [RESOLVIDO]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
freire28
Membro Junior
Membro Junior


Registrado: Domingo, 30 de Setembro de 2007
Mensagens: 316

MensagemEnviada: Seg Fev 16, 2009 9:41 am    Assunto: servidor smtp [RESOLVIDO] Responder com Citação

bom dia pessoal

estou com uma duvida

estou criando uma aplicacao para enviar email, dai eu tive um problema com porta, por exemplo o Gmail e o Yahoo utilizam o a porta 465 pois precisam de autenticacao para enviar o email, ja outros emails que eu tenho utilizam a porta 25 que nao necessita de autenticacao.

minha duvida é sao apenas essas duas portas que o smtp utiliza ? 465 quando requer autenticacao e 25 quando nao tem necessidade de autenticacao?? ou tem mais portas ??


agradeco se puderem me ajudar


Editado pela última vez por freire28 em Qua Fev 18, 2009 4:27 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
coelho_tijucano
Aprendiz
Aprendiz


Registrado: Terça-Feira, 27 de Janeiro de 2009
Mensagens: 149
Localização: Santa Catarina

MensagemEnviada: Seg Fev 16, 2009 11:32 am    Assunto: Responder com Citação

sempre usei só essas!

=)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
freire28
Membro Junior
Membro Junior


Registrado: Domingo, 30 de Setembro de 2007
Mensagens: 316

MensagemEnviada: Seg Fev 16, 2009 11:54 am    Assunto: Responder com Citação

coelho_tijucano escreveu:
sempre usei só essas!

=)


com dia coelho, entao cara tvez vc possa me ajudar em outra duvida.

eu fiz uma aplicacao para enviar email so que nao consigo enviar atravez do yahoo de geito nenhum.

tem o problema de autenticacao ssl que eu alterei uma dll que encontrei em outros foruns dai funcionou para o gmail, mas para o yahoo nao vai

da uma olhada no meu codigo aqui

if (EmailDestinatario <> '') and ( Servidor <> '') then
begin
{ *** CRIA OS COMPONENTES PARA ENVIO DO EMAIL *** }
email := TIdMessage.Create(nil);
serV := TIdSMTP.Create(nil);
if Autenticacao then
begin
SSL := TIdSSLIOHandlerSocket.Create(nil);
{ seta as propriedades do componente IdSMTP }
Serv.IOHandler := SSl;
serV.Port := 465;
end
else
serV.Port := 25;

serV.AuthenticationType := atLogin;
Serv.Username := Usuario;
Serv.Password := Senha;

serV.Host := Servidor;
{ Seta as propriedades do componente IdMessage }
email.From.Address := EmailRemetente;
email.Recipients.EMailAddresses := EmailDestinatario;
email.Subject := Assunto;
email.Body.Text := Mensagem;
{ insere os anexos }
for i := 0 to FAnexo.Count - 1 do
begin
TIdAttachment.Create(email.MessageParts,FAnexo.Strings[i]);
end;
{ envia o email }
try
try
serV.Connect(1000);
serV.Send(email);
except
raise EspdNFeEmail_EnviarEmailException.Create('Erro ao enviar Email Verifique as Configurações do Email');
end;
finally
if serV.Connected then
serV.Disconnect;
end;
end;

email.Free;
serV.Free;

if Autenticacao then
SSL.Free;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
coelho_tijucano
Aprendiz
Aprendiz


Registrado: Terça-Feira, 27 de Janeiro de 2009
Mensagens: 149
Localização: Santa Catarina

MensagemEnviada: Seg Fev 16, 2009 2:14 pm    Assunto: Responder com Citação

aew fera... nosso sistema usa maneira diferente.. tipow
cada empresa tem a opção de casdastrar no programa

e na tela de envio de email entao ele buscas a tabela EMPRESA os campos - usuario - password - host_email - porta_email - conforme o cliente ja havia cadastrado...

Código:
    nmsmtp1.AuthenticationType:=atlogin;
    nmsmtp1.Username:=empresausername.Value;
    nmsmtp1.Password:=empresapassword.Value;
    NMSMTP1.Host := empresahost_email.value;
    NMSMTP1.Port := empresaporta_email.value;


mais aew no teu caso... tipo o SSL, tem que usar a porta 995 como smtp e 465 para autenticação...

\o/

SSL, porta: 995 (ou 993 não to bem lembrado, ou ainda a porta 587)
Servidor (SMTP): smtp.mail.yahoo.com.br

SSL, porta: 465, use autenticação
Nome da conta/nome do usuário
E-mail: seuusuario@yahoo.com.br
Senha: Sua senha do Yahoo! Mail

Boa Sorde doido... até mais
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
emberada
Novato
Novato


Registrado: Quinta-Feira, 22 de Dezembro de 2005
Mensagens: 3

MensagemEnviada: Qua Mar 25, 2009 9:07 pm    Assunto: Me ajudem com esta questão do e-mail! Responder com Citação

pessoal... preciso de um help...
Estou tentando efetuar o processo de envio pelo smtp do Gmail com indy/Delphi 2007.
Baixei as DLLs conforme forum... O programa conecta e autentica ok no gmail, mas na linha que envia a mensagem ele fica travado e não manda e nem da mensagem de erro, e meu programa fica travado...
Alguem tem o codigo com isso funcionando ou pode dar uma dica?
Eu uso Windows Vista, firewall desabilitado, sem antivirus...
Meu código:
O programa trava na linha:
IdSMTP.Send(IdMessage);

Qualquer ajuda é bem vinda, mesmo que seja pela utilização de outros componentes...

Código:

        with IdSMTP do
        begin
            AuthType  := atDefault; //Login
            Host      := 'smtp.gmail.com';
            Password  := 'MINHASENHA';
            Port      := 465;
            Username  := 'MEUEMAIL@gmail.com';
            IOHandler := IdSSLIOHandlerSocketOpenSSL1;
            IdSMTP.UseTLS := utUseExplicitTLS;
        end;//with
   
        IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv2;
        IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient;

        Screen.Cursor   := crHourGlass;
        btnEnviarEmail.Enabled := false;
        progressBar.Max := 1; //Total de mensagens a enviar
        progressBar.Position := 0;
        IdSMTP.Host     := 'smtp.gmail.com';
        IdSMTP.Username := 'MEUEMAIL@gmail.com';
        IdSMTP.Password := 'MINHASENHA';

        if ckbRequerAutenticacao.Checked then
            IdSMTP.AuthType := atDefault //Login
        else
            IdSMTP.AuthType := atNone;

        IdMessage.Clear;
        IdMessage.MessageParts.Clear;
        if lstAnexos.Items.Count > 0 then
        begin
        for i:= 0 to lstAnexos.Items.Count - 1 do
            TIdAttachmentFile.Create(IdMessage.MessageParts, lstAnexos.Items[i]);
        end;
   
        IdMessage.From.Address:= 'MEUEMAIL@gmail.com';
        IdMessage.Subject:= 'Orçamento de testes email';
        //podem tirar a linha abaixo se vcs quiserem
        IdMessage.Body.Text := 'Corpo do email de testes';

        IdMessage.Recipients.EMailAddresses := EdtPara.Text;
        IdMessage.BccList.EMailAddresses    := edtCCO.Text;
        IdMessage.CCList.EMailAddresses     := EdtCC.Text;

        IdMessage.From.Text := EdtPara.Text; //conta que irá aparecer
        idMessage.Recipients.EMailAddresses := EdtPara.Text; //email destino

        if not IdSMTP.Connected then
        begin
            IdSMTP.Connect();
            IdSMTP.Authenticate();
        end;//if
        for i:= 1 to progressBar.Max do
        begin
            if IdSMTP.Connected then
            begin
               IdSMTP.Send(IdMessage);
            end;//if
            Application.ProcessMessages;
        end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
dtybel
Novato
Novato


Registrado: Segunda-Feira, 13 de Dezembro de 2010
Mensagens: 1

MensagemEnviada: Seg Dez 13, 2010 1:59 pm    Assunto: Solução do problema: relay access denied Responder com Citação

Pessoal,

Sei que o post está Resolvido, contudo não encontrei a solução aqui, penando muito encontrei como resolver e para ajudar um próximo segue a baixo a solução:

Causa:
A autenticação exige todo o nome de usuário, exemplo: dtybel@dominio.com.br, não apenas: dtybel.

Solução: Abaixo segue minha função funcionando corretamente.

Código:
function isEnviarEmail(de,para,cc,assunto,smtp,porta,usuario,senha,corpo : String) : Boolean;
var IdMessage1: TIdMessage;
    IdSMTP1   : TIdSMTP;
//Declarar na uses IdMessage, IdSMTP;
begin
  IdMessage1                              := TIdMessage.Create(nil);
  IdSMTP1                                 := TIdSMTP.Create(nil);

  //Pegar parametros do .ini se não for informado.
  if (Length(de) = 0) then
    begin
      de                                  := dtybel@dominio.com.br;
      para                                := dtybel@dominio.com.br;
      smtp                                := smtp.dominio.com.br;
      usuario                             := dtybel@dominio.com.br; //Aqui é o erro, se deixar sem o @dominio.com.br
      senha                               := "123456"
      porta                               := 25;

    end;

  //Configuração do IdMessage (dados da mensagem)
  //e-mail do remetente
  IdMessage1.From.Address                 := de;
  //e-mail do destinatário
  IdMessage1.Recipients.EMailAddresses    := para;
  //if ( para <IdMessage1> 0) then
  //IdMessage1.CCList.EMailAddresses := cc;
  IdMessage1.Body.Clear;

  IdMessage1.Subject := assunto; //Assunto
  IdMessage1.Body.Add('==========================================================='); //Corpo da mensagem
  IdMessage1.Body.Add( corpo ); //Corpo da mensagem
  IdMessage1.Body.Add('==========================================================='); //Corpo da mensagem

  //Configuração do IdSMTP
  //Configurações remente
  IdSMTP1.AuthenticationType  := atLogin;
  IdSMTP1.Host      := smtp;
  IdSMTP1.Username  := usuario;
  IdSMTP1.Password  := DecryptSTR( senha ,1,2,3);
  IdSMTP1.Port      := StrToInt( porta );
  IdSMTP1.Connect;      //Estabelece a conexão
  IdSMTP1.Authenticate; //Faz a autenticação

  try
    IdSMTP1.Send(IdMessage1); //Envia a mensagem

    Result        := True;
  except
    on e:exception do
    begin
       Result     := False;
       Application.MessageBox(Pchar(e.Message), Pchar('Erro.'), mb_ok+mb_iconerror  );
    end;
  end;
  IdSMTP1.Disconnect;

end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
freire28
Membro Junior
Membro Junior


Registrado: Domingo, 30 de Setembro de 2007
Mensagens: 316

MensagemEnviada: Seg Dez 13, 2010 4:57 pm    Assunto: Re: Solução do problema: relay access denied Responder com Citação

dtybel escreveu:
Pessoal,

Sei que o post está Resolvido, contudo não encontrei a solução aqui, penando muito encontrei como resolver e para ajudar um próximo segue a baixo a solução:

Causa:
A autenticação exige todo o nome de usuário, exemplo: dtybel@dominio.com.br, não apenas: dtybel.

Solução: Abaixo segue minha função funcionando corretamente.

Código:
function isEnviarEmail(de,para,cc,assunto,smtp,porta,usuario,senha,corpo : String) : Boolean;
var IdMessage1: TIdMessage;
    IdSMTP1   : TIdSMTP;
//Declarar na uses IdMessage, IdSMTP;
begin
  IdMessage1                              := TIdMessage.Create(nil);
  IdSMTP1                                 := TIdSMTP.Create(nil);

  //Pegar parametros do .ini se não for informado.
  if (Length(de) = 0) then
    begin
      de                                  := dtybel@dominio.com.br;
      para                                := dtybel@dominio.com.br;
      smtp                                := smtp.dominio.com.br;
      usuario                             := dtybel@dominio.com.br; //Aqui é o erro, se deixar sem o @dominio.com.br
      senha                               := "123456"
      porta                               := 25;

    end;

  //Configuração do IdMessage (dados da mensagem)
  //e-mail do remetente
  IdMessage1.From.Address                 := de;
  //e-mail do destinatário
  IdMessage1.Recipients.EMailAddresses    := para;
  //if ( para <IdMessage1> 0) then
  //IdMessage1.CCList.EMailAddresses := cc;
  IdMessage1.Body.Clear;

  IdMessage1.Subject := assunto; //Assunto
  IdMessage1.Body.Add('==========================================================='); //Corpo da mensagem
  IdMessage1.Body.Add( corpo ); //Corpo da mensagem
  IdMessage1.Body.Add('==========================================================='); //Corpo da mensagem

  //Configuração do IdSMTP
  //Configurações remente
  IdSMTP1.AuthenticationType  := atLogin;
  IdSMTP1.Host      := smtp;
  IdSMTP1.Username  := usuario;
  IdSMTP1.Password  := DecryptSTR( senha ,1,2,3);
  IdSMTP1.Port      := StrToInt( porta );
  IdSMTP1.Connect;      //Estabelece a conexão
  IdSMTP1.Authenticate; //Faz a autenticação

  try
    IdSMTP1.Send(IdMessage1); //Envia a mensagem

    Result        := True;
  except
    on e:exception do
    begin
       Result     := False;
       Application.MessageBox(Pchar(e.Message), Pchar('Erro.'), mb_ok+mb_iconerror  );
    end;
  end;
  IdSMTP1.Disconnect;

end;



com certeza exige o nome todo do usuario, afinal vc ta fazendo na sua aplicação.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rastrack
Novato
Novato


Registrado: Segunda-Feira, 27 de Julho de 2015
Mensagens: 70

MensagemEnviada: Sex Jun 16, 2017 8:57 pm    Assunto: Responder com Citação

coelho_tijucano escreveu:
aew fera... nosso sistema usa maneira diferente.. tipow
cada empresa tem a opção de casdastrar no programa

e na tela de envio de email entao ele buscas a tabela EMPRESA os campos - usuario - password - host_email - porta_email - conforme o cliente ja havia cadastrado...

Código:
    nmsmtp1.AuthenticationType:=atlogin;
    nmsmtp1.Username:=empresausername.Value;
    nmsmtp1.Password:=empresapassword.Value;
    NMSMTP1.Host := empresahost_email.value;
    NMSMTP1.Port := empresaporta_email.value;


mais aew no teu caso... tipo o SSL, tem que usar a porta 995 como smtp e 465 para autenticação...

\o/

SSL, porta: 995 (ou 993 não to bem lembrado, ou ainda a porta 587)
Servidor (SMTP): smtp.mail.yahoo.com.br

SSL, porta: 465, use autenticação
Nome da conta/nome do usuário
E-mail: seuusuario@yahoo.com.br
Senha: Sua senha do Yahoo! Mail

Boa Sorde doido... até mais


Ressucitando o tópico para a galera mal informada aí;

1- Vi em uma das respostas ali a porta 25 sendo referenciada como uso pra SMTP sem autenticação, não tem nada a ver! A porta 25 na maioria dos servidores funcionava com autenticação, tô colocando no passado pois hoje, em 2017, essa porta tá caindo em desuso inclusive no Brasil que já foi bloqueada pela Anatel, SMTP agora é só SSL, se tentar sem SSL vai direto pro lixo do destinatário.

2- Respondendo ao colega aqui sobre a confusão que ele tá fazendo com as portas 995 e 993;

995 = POP SSL
993 = IMAP SSL
465 = SMTP SSL

Se não tens conhecimento da informação, então não passa a informação errada pros outros, pois pra quem tá aprendendo isso é ruim, atrapalha!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB