Ajuda - Busca - Membros - Calendário
Versão Completa: Enviar E-mail
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Pirambu!
Eu criei um form para enviar E-mail
e Adicionei os seguintes componentes:IdSMTP,IdMessage
no IdSMT:
Host= smtp.mail.yahoo.com.br
Password:Senha do meu e-mail
UserName:nome do meu e-mail

Gostaria de saber se esta forma esta correta

quando mando enviar apararece o seguinte erro: SOCKET ERRO #11004.


alguém sabe como eu possa resolver este problema?
Eder
Ola...

Amigo....eu faço assim...segue o codigo que uso.

CODE
procedure TForm1.XiButton1Click(Sender: TObject);
Var newText   : TIdText;
    sPath     : String;
    newAttach : TIdAttachment;
    imgID1, imgName1 : String;
begin
   //Endereço e ID da Imagem
   imgName1 := 'c:\figura.jpg';
   //imgID1   := CreateUniqueID; desabilitei

   // Configura o Servidor
   IdSMTP1.Host := EditSmtp.text;//Host SMTP do bol
   IdSMTP1.Port := StrToInt(EditPorta.text);  //Port do bol
   IdSMTP1.Username := EditUserName.text;//Login do usuário
   IdSMTP1.Password := EditPassWord.Text; //Senha do usuário
   IdSMTP1.AuthenticationType := atLogin; //tipo da autenticação (atNone é quando não precisa autenticar}

   // Configura o Remetente da Mensagem
   IdMessage1.Clear;
   IdMessage1.From.Address := EditEmailRem.text;
   IdMessage1.From.Name    := EditNomeRem.text;
   IdMessage1.Subject      := EditAssunto.text;

   // Configura os destinatários
   IdMessage1.Recipients.Clear;
   IdMessage1.Recipients.Add;
   IdMessage1.Recipients.Items[IdMessage1.Recipients.Count-1].Address := EditEmailDest.text;
   IdMessage1.Recipients.Items[IdMessage1.Recipients.Count-1].Name    := EditNomeDest.text;

   // Adiciona o HTML ao corpo da mensagem
   newText := TIdText.Create(IdMessage1.MessageParts,nil);
   newText.ContentType := 'text/html';
   newText.Body.Add('<HTML><BODY>');
   newText.Body.Add('<IMG SRC="cid:'+imgID1+'"></p>');  // Troca imagens pelo ID unico
   newText.Body.Add('<font face="Verdana" size="2"><b>Empresa</b>');
   newText.Body.Add('</font><hr><font face="Verdana" size="2"><b><font face="Verdana" size="2"><b><font face="Verdana" size="1"><b><u>'+EditAssunto.text+'</u></b></font></b></font></b></font></p>');
   newText.Body.Add('<p><font face="Verdana" size="2"><b><font face="Verdana" size="2"><b><font face="Verdana" size="1">'+EditMensagem1.text+'</font></b></font></b></font></p>');
   newText.Body.Add('<p><font face="Verdana" size="2"><b><font face="Verdana" size="2"><b><font face="Verdana" size="1">'+EditMensagem2.text+'</font></b></font></b></font></p>');
newText.Body.Add('<p><font face="Verdana" size="2"><b><font face="Verdana" size="2"><b><font face="Verdana" size="1">'+EditMensagem2.text+'</font></b></font></b></font></p>');
   newText.Body.Add('</BODY><HTML>');

   // define o tipo do conteúdo da mensagem

   // Adiciona uma parte texto ao corpo
   newText := TIdText.Create(IdMessage1.MessageParts,nil);
   newText.ContentType := 'text/plain';
   newText.Body.Add('Este email só será visualizado em padrão HTML');


   //Anexa a primeira imagem
   newAttach := TIdAttachment.Create(IdMessage1.MessageParts,imgName1);
   newAttach.ContentType        := 'image/jpeg';
   newAttach.ContentDisposition := 'inline';
   newAttach.ExtraHeaders.Values['Content-ID'] := '<'+imgId1+'>';

    //Estabelece a conexão
     IdSMTP1.Connect;
     IdSMTP1.Authenticate;
   // Envia
   Try
      IdSMTP1.Send(IdMessage1);
      showmessage('Ok. Mesagem Enviada com Sucesso.');
      //Envia a mensagem
  except
      showmessage('ERRO. Não enviado.');
     //Mensagem de erro
  end;
  IdSMTP1.Disconnect;
end;



Veja se te ajuda este código...ele faz todo o processo.....com opção de anexar um papel de carta...
uso este codigo ....e foi testado no servidor bol e meu domínio.

Abraço






Pirambu!
Eder, apareceu o mesmo erro:SOCKET ERRO #11004.

mais eu estou usando o do yahoo. smtp.mail.yahoo.com.br ,

o que eu precisaria para usar o do "bol"
Eder
simples...criaria um email no bol, pelo que eu sei é Grátis..www.bol.com.br

servidor do envio do Bol: smtps.bol.com.br

falou
Pirambu!
Eder, já criei o e-mail e coloquei no Host do IdSMTP1, mais continuou o Erro:SOCKET ERRO #11004.
Eder
se você criou um email do bol....faça assim a configuração:

CODE
// Configura o Servidor
   IdSMTP1.Host := EditSmtp.text;//Host SMTP do bol exemplo: smtps.bol.com.br
   IdSMTP1.Port := StrToInt(EditPorta.text);  //Port do bol exempo: 25
   IdSMTP1.Username := EditUserName.text;//Login do usuário exemplo: pirambu
   IdSMTP1.Password := EditPassWord.Text; //Senha do usuário exemplo: 787877
   IdSMTP1.AuthenticationType := atLogin; //tipo da autenticação (atNone é quando não precisa


se fizer assim deve funcionar...pois acabei de fazer um teste com o bol...e deu certo a imagem enviou e recebi...é claro que tem que configurar as outras opções
não esqueça que o bol.....o servidor não é smtp e sim smtps
eu fiz o teste assim smtp.bol.com.br e deu exatamento o erro que você mencionou: SOCKET ERRO #11004.
ai corrigi para smtps.bol.com.br e deu certo.

Acredito que seja este o problema. smile.gif

abraço
Pirambu!
Eder você tinha razão eu tinha digita errado o Host, mas agora esta aparecendo o seguinte erro "ERRO. Não enviado."

não estar conseguindo enviar a mensagem
CODE
IdSMTP1.Send(IdMessage1);


você tem ideia do que possa ser agora?
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.