Enviando email
Tenho uma funcao para enviar email, utilizando o Indy com Delphi 7. Utilizando a propriedade, SMTP.AuthenticationType := atLogin, os emails sao enviados e recebidos, mas utilizando SMTP.AuthenticationType := atNone, os emais sao enviados porem nao sao recebidos, lembrando que meu provedor nao necessita de autenticacao, alguem sabe me dizer porque acontece isso ?
Abs
Abs
Felipeiw
Curtidas 0
Respostas
Pestana_
14/03/2008
poste o código de envio de e-mail !
qual é o seu provedor?
flw.
qual é o seu provedor?
flw.
GOSTEI 0
Felipeiw
14/03/2008
try // Mensagem IdMsgSend.Subject := xassunto; IdMsgSend.Body.Text := xmensagem; // Remetente idMsgSend.From.Address := xretorno; IdMsgSend.ReplyTo.EMailAddresses := xretorno; idMsgSend.From.Name := ´TESTE´; // Destinatário IdMsgSend.Recipients.EMailAddresses := xpara; // Copia if (xcopia <> ´´) then idMsgSend.CCList.EMailAddresses := xcopia; // Copia Oculta if (xcopiaoculta <> ´´) then idMsgSend.BccList.EMailAddresses := xcopiaoculta; idMsgSend.MessageParts.Clear; // Anexa um arquivo if (xanexo1 <> ´´) then TIdAttachment.Create(idMsgSend.MessageParts,xanexo1); // Caso tenha alguma imagem para inserir no corpo do email if (ximagem <> ´´) then begin lTextPart := TIdText.Create(idMsgSend.MessageParts); lTextPart.ContentType := ´text/plain´; lTextPart := TIdText.Create(idMsgSend.MessageParts); lTextPart.Body.LoadFromFile(ximagem); lTextPart.Body.Add(xmensagem); lTextPart.ContentType := ´text/html´; end; // Autenticação - Use apenas quando o servidor exigir // SMTP.AuthenticationType := atNone; SMTP.AuthenticationType := atLogin; SMTP.Username := ´nome@xxx.com.br´; SMTP.Password := ´xxxyyy´; // Dados do Servidor SMTP.Host := ´smtp.xxx.com.br´; SMTP.Port := 25; SMTP.Connect; try SMTP.Send(IdMsgSend); except Result := False; end; SMTP.Disconnect; except Result := False; end;
Meu provedor é o terra, foi solicitado junto ao provedor a liberacao de relay do nosso dominio.
Abs
GOSTEI 0
Felipeiw
14/03/2008
sobe
GOSTEI 0
Massuda
14/03/2008
Meu provedor é o terra, foi solicitado junto ao provedor a liberacao de relay do nosso dominio.
Uso emails do Terra e já tem muito tempo que eles exigem login (atLogin) para enviar emails. Você mesmo diz que assim funciona, por que quer enviar sem fazer login?Quanto ao relay, eu entendo que isso significa que os servidores do Terra aceitam emails originados no seu domínio como se fosse um @terra.com.br, mas acredito que isso não faculta você de fazer o login.
GOSTEI 0
Felipeiw
14/03/2008
Entao, depois que solicitei a liberacao de relay, o Terra me passou que eu deveria utilizar o smtp.terraempresas.com.br, antes eu utilizava smtp.terra.com.br, de acordo com os meus testes, quando eu coloco a primeira opcao as mesmas contas de emails, que com a segunda opcao sao aceitos, passam a nao serem mais aceitos, entao imagino que o problema esta com o smtp.
Porem quando eu envio utilizando smtp.terra.com.br tenho um limite de envio, e com smtp.terraempresas.com.br, em principio eu nao teria limite, mas como ja dito, com essa opcao as contas de emails sao recusadas.
Abs
Porem quando eu envio utilizando smtp.terra.com.br tenho um limite de envio, e com smtp.terraempresas.com.br, em principio eu nao teria limite, mas como ja dito, com essa opcao as contas de emails sao recusadas.
Abs
GOSTEI 0
Felipeiw
14/03/2008
Resolvi o problema da seguinte maneira, estou enviando emails para clientes, entao antes de chamar o metodo de envio de email eu espero um determinado momento (sleep(2000)) e assim estou conseguindo enviar os emails.
Abs
Abs
GOSTEI 0
Mysys
14/03/2008
Eu to com um problema do tipo
envio 100 chega 10 mesmo enviando todos para o mesmo email
eu coloquei um sleep de 1500 vc colocou esse sleep2000 de um email para o outro ou vc ta enviando tipo de 50 em 50 como contato oculto ?
eu to enviando de um em um dando o sleep1500 entre cada envio
envio 100 chega 10 mesmo enviando todos para o mesmo email
eu coloquei um sleep de 1500 vc colocou esse sleep2000 de um email para o outro ou vc ta enviando tipo de 50 em 50 como contato oculto ?
eu to enviando de um em um dando o sleep1500 entre cada envio
GOSTEI 0
Mysys
14/03/2008
assim eu uso Theread pra enviar os emails vou postar aki o codigo da execucao da pra entender oque eu to fazendo
ta dando um tempo antes de enviar o outro mais mesmo assim nao ta indo sera que o conteudo do email por ser html ou ou ou ou nao sei o server é meu e esta todo liberado para enviar emails a vontade sem restricoes
{ Faz o loop na Query com os emails }
While not QRYEmail.Eof do
Begin
{ Se cancelado para tudo }
If Terminated Then
Begin
Atualiza(´Envio cancelado´);
Exit;
End;
{ Monta corpo do email }
MontaCorpo;
{ Envia o email }
EnviaEmail;
{ Deleta da lista }
DeletaDaLista;
{ Navega para o proximo }
QRYEmail.Next;
{ Aguarda para enviar proximo }
Sleep(2000);
End;
ta dando um tempo antes de enviar o outro mais mesmo assim nao ta indo sera que o conteudo do email por ser html ou ou ou ou nao sei o server é meu e esta todo liberado para enviar emails a vontade sem restricoes
GOSTEI 0
Felipeiw
14/03/2008
Estou na verdade utilizando sleep(3000), pois com 2000 nao estava enviando, e estou dando esse tempo a cada email, o problema disso é que demora demais e tenho um volume grande de emails para enviar, estou procurando outra saida para isso.
Abs
Abs
GOSTEI 0