Fórum Erro envio email fora dominio #272604
16/03/2005
0
function TfrmConfigura.EnviarEmail(rem,dest,assun,msg : string):boolean; procedure GravaErro(erro : string); var ts : TStringList; begin ts := TStringList.Create; try ForceDirectories(´c:\logmail´); try ts.LoadFromFile(´c:\logmail\log.txt´); except end; ts.Add(DateTimeToStr(now)); ts.Add(erro); ts.SaveToFile(´c:\logmail\log.txt´); finally ts.Free; end; end; const p = ´******´; begin try //Processo de reconhecimento no POP3 do UOL NMPOP31.AttachFilePath := ´.´; NMPOP31.DeleteOnRead := FALSE; NMPOP31.ReportLevel := Status_Basic; NMPOP31.TimeOut := 20000; NMPOP31.Host := ´10.19.7.12´; NMPOP31.Port := 110; NMPOP31.UserID := ´xxxx´; NMPOP31.Password := p; NMPOP31.Connect; // Result := True; NMSMTP1.Host := ´10.19.7.12´; NMSMTP1.Port := 25; NMSMTP1.UserID := ´xxxx´; NMSMTP1.Connect; if not NMSMTP1.Connected then Result := False; if Result then begin NMSMTP1.PostMessage.FromAddress := rem; NMSMTP1.PostMessage.ToAddress.Clear; NMSMTP1.PostMessage.ToAddress.Add(dest); NMSMTP1.PostMessage.Subject := assun; NMSMTP1.PostMessage.Body.Text := msg; NMSMTP1.PostMessage.Date := FormatDateTime(´dd/mm/yyyy hh:nn´,Now); NMSMTP1.SendMail; NMSMTP1.Disconnect; NMPOP31.Disconnect; end; except on e:exception do begin GravaErro(e.message); NMSMTP1.Disconnect; NMPOP31.Disconnect; Result := False; end; end; end;
para os dominios fora da empresa dá o seguinte erro
503 no recipients need rcpt
alguém tem alguma dica ?
Motta
Curtir tópico
+ 0Posts
16/03/2005
Faelcavalcanti
Mas adiantando sobre o código, verifica se o host realmente existe. tipow, dá um ping. Verifica também opções para envio de e-mail, digo assim porque não sei qual o componente que estais utilizando!!!
Espero ter ajudado!!!
Gostei + 0
16/03/2005
Massuda
Gostei + 0
16/03/2005
Motta
1) sim é rede local, foi uma solução para envio de email, grava o texto numa tabela e uma app lê esta tabela e envia os emails
2) o NMPOP31.Disconnect;
no except não faria isto ??!!
3) Sim com certeza passei o destinatario
4) Não sabemos aqui se vamos migrar nossos sistemas, mas posso estudar utilizar outros componentes
Este código funciona para emails no próprio domínio da empresa, mas para fora dá este erro.
de qq forma grato !
Gostei + 0
16/03/2005
Massuda
NMPOP31.Connect; Result := True; ... NMSMTP1.Connect; if not NMSMTP1.Connected then Result := False; if Result then begin ... NMSMTP1.Disconnect; NMPOP31.Disconnect; end;
Quanto ao problema no envio, aviso aqui se eu lembrar de alguma coisa.
Gostei + 0
16/03/2005
Motta
Gostei + 0
16/03/2005
Massuda
1) sim é rede local, foi uma solução para envio de email, grava o texto numa tabela e uma app lê esta tabela e envia os emails[/quote:3ba580665b]Isso é uma coisa que eu não entendi... afinal, você tem um servidor de POP3/SMTP na sua rede local ou você tem um app que faz papel dos servidores (tipo um servidor proxy)?
Gostei + 0
16/03/2005
Motta
Faz a caminho de envio de emails não seria este, acessar o servidor de smpt/pop e por ele enviar o email , mesmo na rede local ?
Gostei + 0
16/03/2005
Massuda
Se sim, nesse caso NMPOP31.Host e NMSMTP1.Host deveriam ser o nome do seu servidor POP3/SMTP na internet (por exemplo, ´mail.algumprovedor.com.br´). Para facilitar a vida, seu programa deveria ser executado na máquina que está conectada diretamente à internet, assim não tem problema de converter IP local/externo.
Gostei + 0
16/03/2005
Motta
Gostei + 0
16/03/2005
Massuda
Pelo que entendi, seu programa (o que está tendo problemas) pega de uma tabela do BD os e-mails e manda. Acho que a única correção agora seria por os nomes corretos dos servidores de POP3/SMTP.
Uma alternativa seria você usar algo parecido com sendmail para enviar os e-mails, tipo o [url=http://www.blat.net/]Blat[/url].
Gostei + 0
16/03/2005
Motta
Agradeço pela ajuda !!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)