Fórum Connection Closed Gracefully delphi xe10 #559782
02/08/2016
0
gostaria apenas de ignora-la, eu visitei outras duvidas aqui relacionada a isso e não conseguir entender nada, por isso abri a pergunta aqui, agradeço desde já.
Mateus
Curtir tópico
+ 0Post mais votado
06/08/2016
Você deve trocar
//setup SMTP
SMTP.Host := ledHost.Text;
SMTP.Username := 'admin@minhaweb2.com';
SMTP.Password := 'www.mw2';
SMTP.Port := 26;
//setup mail message
MailMessage.From.Address := 'admin@minhaweb2.com'; //ledFrom.Text;
MailMessage.Recipients.EMailAddresses := ledTo.Text; // + ',' + ledCC.Text;
De acordo suas configurações de conta conforme padrão do seu provedor de hospedagem
Raimundo Pereira
Gostei + 1
Mais Posts
02/08/2016
Luiz Menin
Quando existe uma conexão ativa entre client server e por acaso o Server cai e volta, no momento que eu tentasse abrir algum dataset que consultava dados recebia essa mensagem.
A solução era fechar a conexão do Client e abrir novamente. Eu sei que não responde diretamente tua pergunta, mas pode dar uma luz.
Gostei + 0
06/08/2016
Augusto Angelim
Segue o exemplo ORIGINAL que funciona bem!!!
Fiz, derivado dele a função SendMail(...) que funciona bem!!!
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient,
IdSMTP, ComCtrls, StdCtrls, Buttons, ExtCtrls, IdBaseComponent, IdMessage,
IdExplicitTLSClientServerBase, IdSMTPBase, inifiles;
type
TMailerForm = class(TForm)
MailMessage: TIdMessage;
pnlTop: TPanel;
pnlBottom: TPanel;
ledHost: TLabeledEdit;
Body: TMemo;
ledAttachment: TLabeledEdit;
btnAttachment: TBitBtn;
SMTP: TIdSMTP;
ledFrom: TLabeledEdit;
ledTo: TLabeledEdit;
ledCC: TLabeledEdit;
ledSubject: TLabeledEdit;
btnSendMail: TBitBtn;
StatusMemo: TMemo;
AttachmentDialog: TOpenDialog;
procedure btnSendMailClick(Sender: TObject);
procedure SMTPStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
procedure btnAttachmentClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure GetSettings;
procedure SaveSettings;
public
{ Public declarations }
end;
var
MailerForm: TMailerForm;
implementation
{$R *.dfm}
procedure TMailerForm.btnSendMailClick(Sender: TObject);
begin
StatusMemo.Clear;
//setup SMTP
SMTP.Host := ledHost.Text;
SMTP.Username := 'admin@minhaweb2.com';
SMTP.Password := 'www.mw2';
SMTP.Port := 26;
//setup mail message
MailMessage.From.Address := 'admin@minhaweb2.com'; //ledFrom.Text;
MailMessage.Recipients.EMailAddresses := ledTo.Text; // + ',' + ledCC.Text;
MailMessage.Subject := ledSubject.Text;
MailMessage.Body.Text := Body.Text;
MailMessage.ContentType := 'text/html';
//send mail
try
try
SMTP.Connect;
if SMTP.Connected then SMTP.Send(MailMessage)
else StatusMemo.Lines.Insert(0, 'Connect ERROR: ');
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
end; (* btnSendMail Click *)
procedure TMailerForm.SMTPStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
StatusMemo.Lines.Insert(0,'Status: ' + AStatusText);
end; (* SMTP Status *)
procedure TMailerForm.btnAttachmentClick(Sender: TObject);
begin
if AttachmentDialog.Execute then
ledAttachment.Text := AttachmentDialog.FileName;
end;
procedure TMailerForm.FormCreate(Sender: TObject);
begin
GetSettings;
end;
procedure TMailerForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveSettings;
end;
procedure TMailerForm.GetSettings;
var
ini : TIniFile;
begin
Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
try
ledHost.Text := ini.ReadString('SMTP','Host','');
ledFrom.Text := ini.ReadString('MAIL','From','');
ledTo.Text := ini.ReadString('MAIL','To','');
ledCC.Text := ini.ReadString('MAIL','CC','');
finally
ini.Free;
end;
end; (* GetSettings *)
procedure TMailerForm.SaveSettings;
var
ini : TIniFile;
begin
Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
try
ini.WriteString('SMTP','Host',ledHost.Text);
ini.WriteString('MAIL','From',ledFrom.Text);
ini.WriteString('MAIL','To',ledTo.Text);
ini.WriteString('MAIL','CC',ledCC.Text);
finally
ini.Free;
end;
end; (* SaveSettings *)
end.
==========================================================================
Função que fiz derivado do exemplo acima!
string := SendMail(sHost,sUser,sPW,iPort,sTO,sCC,sSubject,sBody,sType,sCharSet);
Função:
function SendMail(sHost,sUser,sPW:String;iPort:Integer; sTO,sCC,sSubject,sBody,sType,sCharSet:String): String;
var
MailMessage: TIdMessage;
// ccMail : TIdEMailAddressItem;
// replyTo : TIdEMailAddressItem;
SMTP : TIdSMTP;
begin
//
Result := 'Ok';
//
MailMessage := TIdMessage.Create;
SMTP := TIdSMTP.Create;
//setup SMTP
SMTP.Host := sHost;
SMTP.Username := sUser;
SMTP.Password := sPW;
SMTP.Port := iPort;
SMTP.MailAgent := 'minhaWEB2.MAIL.Sender';
//setup mail message
MailMessage.From.Address := sUser;
// if (Length(Trim(sCC)) = 0) then MailMessage.Recipients.EMailAddresses := sTO
// else MailMessage.Recipients.EMailAddresses := sTO + ',' +sCC;
//
MailMessage.Recipients.EMailAddresses := sTO;
MailMessage.ReplyTo.EMailAddresses := sCC;
//
MailMessage.CharSet := sCharSet; //'ISO-8859-1';
MailMessage.Subject := sSubject;
MailMessage.Body.Text := sBody;
MailMessage.ContentType := sType; //'text/html';
//send mail
try
try
SMTP.Connect;
if SMTP.Connected then SMTP.Send(MailMessage)
else Result := 'ConnectFail';
except on E:Exception do
Result := E.Message;
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
//
end;
//===============================================================[ SendMail ]===
Gostei + 0
06/08/2016
Mateus
Gostei + 0
06/08/2016
Mateus
Gostei + 0
06/08/2016
Mateus
Gostei + 0
07/08/2016
Mateus
o resto ta igualzinho
Gostei + 0
08/08/2016
Mateus
Gostei + 0
08/08/2016
Raimundo Pereira
2. Basta preencher de acordo com o provedor do seu email
Exemplo:
Supomos que eu tenho uma conta no Gmail logo o meu provedor é gmail.
Minha configuração ficará assim
{ Aqui você coloca o seu servidor SMTP }
NMSMTP1.Host := 'smtp.gmail.com.br';
{ Porta SMTP, Esta porta não deve ser alterada!}
NMSMTP1.Port := 587;
{Seu Nome de login }
NMSMTP1.UserID := 'p2@gmail.com';
{ Aqui você se Conecta ao servidor }
NMSMTP1.Connect;
{ Se ocorrer algum erro durante a conexão com o servidor, o aplicativo dá uma mensagem de erro }
if not NMSMTP1.Connected then
raise Exception.Create('Erro de conexão');
with NMSMTP1.PostMessage do begin
{Aqui você digita o seu e-mail }
FromAddress := 'p2@gmail.com';
{Aqui você digita seu nome }
FromName := 'P2';
{Aqui o E-mail do destinatário }
ToAddress.Clear;
ToAddress.Add('rcp@outlook.com.br');
{ Aqui é a parte do assunto da mensagem }
Subject := 'Assunto da mensagem';
{ Este será o corpo da mensagem }
Body.Clear;
Body.Add('1ª linha da mensagem');
Body.Add('2ª linha da mensagem');
Body.Add(''); { Linha em branco }
Body.Add('última linha da mensagem');
{ Anexar arquivos(Se não quiser anexar arquivos pode apagar as tres linhas seguintes) }
Attachments.Clear;
{ Aqui deve conter o endereço do anexo }
Attachments.Add('c:\diretorio_do_arquivo\arquivo.txt');
end;
{ Mandar o e-mail }
NMSMTP1.SendMail;
{ É importante esta parte pois ela disconecta do servidor }
NMSMTP1.Disconnect;
end;
Gostei + 1
09/08/2016
Mateus
Gostei + 0
09/08/2016
Raimundo Pereira
Gostei + 0
09/08/2016
Mateus
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)