Como Enviar email, sem utilizar o Outlook
:?: Boa noite Galera, estou apanhando um pouco e não sei como faço para resolver esse ´pepino´:
Em 1º lugar, não quero utilizar o Outlook, pois como tenho uma relação de Clientes de Aprox. 2000 emails, pelo outlook, como possui limites (50 email de cada vez), e além de ter que ficar clicando em Enviar, por isso estou procurando outra alternativa!
Preciso fazer uma Tela que envia email, já procurei em vários locais, mas sempre dá erro, aliás, diversos erros diferentes, vou colocar o código aki em baixo e vou contar com a ajuda de vcs!
////////////////////////////////////////
unit unt_email;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdSMTP, IdBaseComponent, IdMessage, IdIOHandler,
IdIOHandlerSocket, IdSSLOpenSSL, IdAntiFreezeBase, IdAntiFreeze;
type
Tfrm_email = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
btnAnexo: TBitBtn;
Label6: TLabel;
edtPara: TEdit;
edtCC: TEdit;
edtcco: TEdit;
edtassunto: TEdit;
cbxPrioridade: TComboBox;
btnEnviar: TBitBtn;
mmMensagem: TMemo;
odAnexos: TOpenDialog;
IdMessage: TIdMessage;
IdSMTP: TIdSMTP;
ListBox1: TListBox;
IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket;
procedure btnAnexoClick(Sender: TObject);
procedure btnEnviarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_email: Tfrm_email;
implementation
{$R *.dfm}
procedure enviar(var motivo,praquem:string);
begin
end;
procedure Tfrm_email.btnAnexoClick(Sender: TObject);
begin
if odAnexos.Execute then
ListBox1.Items.Add(odAnexos.FileName);
end;
procedure Tfrm_email.btnEnviarClick(Sender: TObject);
var xAnexo : Integer;
begin
IdSMTP.Host:= ´smtp.uol.com.br´;
IdSMTP.Port:= 25;
IdSMTP.Username:= ´xxxxxxx´; //usuário
IdSMTP.Password:= ´xxxxxxx´; //senha
IdMessage.From.Address:= ´xxxxxxx@uol.com.br´;
IdMessage.From.Name:= ´Nome´;
IdMessage.Recipients.EMailAddresses:= edtPara.Text;
IdMessage.Subject:= edtassunto.Text;
IdMessage.Body:= mmMensagem.Lines;
for xAnexo := 0 to ListBox1.Items.Count-1 do
TIdAttachment.create(idmessage.MessageParts, TFileName(ListBox1.Items.Strings[xAnexo]));
IdSMTP.Connect;
Application.ProcessMessages;
IdSMTP.Send(IdMessage);
ShowMessage(´certo´);
IdSMTP.Disconnect;
end;
END.
///////////////////////////
O erro que está dando agora é: ´Could Not Load SSL Library.´, mas já deram vários outros como: ´#10061 Connection Refused´, etc...
Já desativei o Firewall, já coloquei os arquivos .dll na pasta System32, coloquei-os na pasta junto com o arquivo executável, e nada....
Em 1º lugar, não quero utilizar o Outlook, pois como tenho uma relação de Clientes de Aprox. 2000 emails, pelo outlook, como possui limites (50 email de cada vez), e além de ter que ficar clicando em Enviar, por isso estou procurando outra alternativa!
Preciso fazer uma Tela que envia email, já procurei em vários locais, mas sempre dá erro, aliás, diversos erros diferentes, vou colocar o código aki em baixo e vou contar com a ajuda de vcs!
////////////////////////////////////////
unit unt_email;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdSMTP, IdBaseComponent, IdMessage, IdIOHandler,
IdIOHandlerSocket, IdSSLOpenSSL, IdAntiFreezeBase, IdAntiFreeze;
type
Tfrm_email = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
btnAnexo: TBitBtn;
Label6: TLabel;
edtPara: TEdit;
edtCC: TEdit;
edtcco: TEdit;
edtassunto: TEdit;
cbxPrioridade: TComboBox;
btnEnviar: TBitBtn;
mmMensagem: TMemo;
odAnexos: TOpenDialog;
IdMessage: TIdMessage;
IdSMTP: TIdSMTP;
ListBox1: TListBox;
IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket;
procedure btnAnexoClick(Sender: TObject);
procedure btnEnviarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_email: Tfrm_email;
implementation
{$R *.dfm}
procedure enviar(var motivo,praquem:string);
begin
end;
procedure Tfrm_email.btnAnexoClick(Sender: TObject);
begin
if odAnexos.Execute then
ListBox1.Items.Add(odAnexos.FileName);
end;
procedure Tfrm_email.btnEnviarClick(Sender: TObject);
var xAnexo : Integer;
begin
IdSMTP.Host:= ´smtp.uol.com.br´;
IdSMTP.Port:= 25;
IdSMTP.Username:= ´xxxxxxx´; //usuário
IdSMTP.Password:= ´xxxxxxx´; //senha
IdMessage.From.Address:= ´xxxxxxx@uol.com.br´;
IdMessage.From.Name:= ´Nome´;
IdMessage.Recipients.EMailAddresses:= edtPara.Text;
IdMessage.Subject:= edtassunto.Text;
IdMessage.Body:= mmMensagem.Lines;
for xAnexo := 0 to ListBox1.Items.Count-1 do
TIdAttachment.create(idmessage.MessageParts, TFileName(ListBox1.Items.Strings[xAnexo]));
IdSMTP.Connect;
Application.ProcessMessages;
IdSMTP.Send(IdMessage);
ShowMessage(´certo´);
IdSMTP.Disconnect;
end;
END.
///////////////////////////
O erro que está dando agora é: ´Could Not Load SSL Library.´, mas já deram vários outros como: ´#10061 Connection Refused´, etc...
Já desativei o Firewall, já coloquei os arquivos .dll na pasta System32, coloquei-os na pasta junto com o arquivo executável, e nada....
Rdestri
Curtidas 0
Respostas
Dbergkamps10
24/05/2009
Ola,
Kra achei isso aqui, mas eh pelo yahoo, tomara q vc possa aproveitar de alguma maneira: http://www.activedelphi.com.br/forum/viewtopic.php?p=244877&sid=aa5c5f31c6520c393d381f475b0b7dec
Espero ter ajudado.
Att
Dalton
Kra achei isso aqui, mas eh pelo yahoo, tomara q vc possa aproveitar de alguma maneira: http://www.activedelphi.com.br/forum/viewtopic.php?p=244877&sid=aa5c5f31c6520c393d381f475b0b7dec
Espero ter ajudado.
Att
Dalton
GOSTEI 0
Rdestri
24/05/2009
Pessoal, consegui a conexão, mas agora está dando outro erro qdo. vou enviar:
5.7.1 <ronaldo_destri@yahoo.com.br>: Recipient Address Rejected: PARA ENVIAR AS MENSAGENS, CLIQUE EM ´ENVIAR E RECEBER´ E INFORME SEUS DADOS DE ACESSO AO UOL.
esse erro acontece no IdSMTP.Send(mmMessage);
Obrigado!
5.7.1 <ronaldo_destri@yahoo.com.br>: Recipient Address Rejected: PARA ENVIAR AS MENSAGENS, CLIQUE EM ´ENVIAR E RECEBER´ E INFORME SEUS DADOS DE ACESSO AO UOL.
esse erro acontece no IdSMTP.Send(mmMessage);
Obrigado!
GOSTEI 0
Alderico.dias
24/05/2009
Certamente vc está utilizando uma conta do gmail para enviar estes e-mails, quando vc utiliza uma conta do gmail para fazer este tipo de envio de e-mail pelo delphi, tem alguns itens que vc tem que modificar em seu algoritmo. O processo de envio pelo gmail é criptografado/encriptação e deve ser feito um pouco diferente dos demais.
O Christiano Douglas, publicou um artigo explicando esta situação. Veja o link http:
//www.devmedia.com.br/articles/viewcomp.asp?comp=9219
O Christiano Douglas, publicou um artigo explicando esta situação. Veja o link http:
//www.devmedia.com.br/articles/viewcomp.asp?comp=9219
GOSTEI 0
Rdestri
24/05/2009
Não estou usando o gmail não! estou utilizando o uol mesmo!
GOSTEI 0