PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Nao envia email #383101

08/08/2010

0

Ola pessoal, estou com uma situação meio estranha:
criei um programa de envio de emails, até ai tudo tranquilo, eu fiz uma alteração de colocar uma imagem no corpo do email, após essa alteração o programa nao envia mais emails.
abaixo minha unit:
unit ufrmEnviaEmail;
interface
uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ShellAPI, StdCtrls, DBCtrls, Buttons, FMTBcd, DB, Provider, DBClient,  SqlExpr, Grids, DBGrids, IdComponent, IdTCPConnection, IdTCPClient,  IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP,  IdBaseComponent, IdMessage, IdAttachmentFile, Gauges, ComCtrls, ExtCtrls,  ExtDlgs, JvExStdCtrls, JvRichEdit;
type  TfrmEnviaEmail = class(TForm)    OpenDialog1: TOpenDialog;    IdMessage: TIdMessage;    IdSMTP: TIdSMTP;    edtPara: TEdit;    edtCC: TEdit;    edtCCO: TEdit;    edtAssunto: TEdit;    cbxPrioridade: TComboBox;    cbxConfirmaLeitura: TCheckBox;    SpeedButton2: TSpeedButton;    ListBox1: TListBox;    SpeedButton3: TSpeedButton;    Label1: TLabel;    Label2: TLabel;    Label3: TLabel;    Label4: TLabel;    Label5: TLabel;    SQLQuery1: TSQLQuery;    ClientDataSet1: TClientDataSet;    DataSetProvider1: TDataSetProvider;    DataSource1: TDataSource;    DBGrid1: TDBGrid;    Gauge: TGauge;    Image1: TImage;    OpenPictureDialog1: TOpenPictureDialog;    JvRichEdit1: TJvRichEdit;    procedure SpeedButton1Click(Sender: TObject);    procedure FormShow(Sender: TObject);    procedure SpeedButton3Click(Sender: TObject);    procedure SpeedButton2Click(Sender: TObject);    procedure DBGrid1DblClick(Sender: TObject);    procedure FormClose(Sender: TObject; var Action: TCloseAction);    function BitmapToRtf(graph:TBitmap):string;  private    { Private declarations }  public    { Public declarations }  end;
var  frmEnviaEmail: TfrmEnviaEmail;
implementation
uses ufrmCadEmail, ufrmImportar, uDm, ufrmCadUsuario, ufrmEnviaEmailSSL,  ufrmSeguranca;
{$R *.dfm}
function TfrmEnviaEmail.BitmapToRtf(graph: TBitmap): string;var //bi, bb, rtf:string; bi, bb, rtf:Ansistring; bis, bbs:cardinal; achar:ShortString; //HexGraph:string; HexGraph:Ansistring; I:Integer;begin GetDIBSizes(graph.Handle, bis, bbs); SetLength(bi,bis); SetLength(bb,bbs); GetDIB(graph.Handle, graph.Palette, PChar(bi)^, PChar(bb)^); rtf:='{\rtf1 {\pict\dibitmap '; SetLength(HexGraph,(Length(bb) + Length(bi)) * 2); I:=2; For bis:=1 to Length(bi) do begin  achar:=Format('%x',[Integer(bi[bis])]);  if Length(achar)=1 then achar:='0'+achar;  HexGraph[I-1]:= achar[1];  HexGraph[I]:=achar[2];  Inc(I,2); end; For bbs:=1 to Length(bb) do begin  achar:=Format('%x',[Integer(bb[bbs])]);  if Length(achar)=1 then achar:='0'+achar;  HexGraph[I-1]:=achar[1];  HexGraph[I]:=achar[2];  Inc(I,2); end; rtf:=rtf + HexGraph + ' }}'; Result:=rtf;end;
procedure TfrmEnviaEmail.DBGrid1DblClick(Sender: TObject);begin if DBGrid1.SelectedRows.CurrentRowSelected = True then  edtPara.Text := edtPara.Text + (ClientDataSet1.FieldByName('EMAIL').AsString) + ',';end;
procedure TfrmEnviaEmail.FormClose(Sender: TObject; var Action: TCloseAction);begin  frmEnviaEmail.Free;  frmEnviaEmail := nil;end;
procedure TfrmEnviaEmail.FormShow(Sender: TObject);begin  ClientDataSet1.Open;{  IdMessage.From.Address := frmSeguranca.email;  IdMessage.From.Name := frmSeguranca.nome;  IdMessage.From.Text := frmSeguranca.nome + ' ' + frmSeguranca.email;  IdMessage.From.User := frmSeguranca.email;  IdMessage.From.Domain := 'youcanbe.com.br';  IdSMTP.Username := frmSeguranca.email;  IdSMTP.Password := frmSeguranca.senha; }end;
procedure TfrmEnviaEmail.SpeedButton1Click(Sender: TObject);var  stringshellexecute: string;begin//  stringshellexecute := stringshellexecute +'mailto:' + Edit1.Text {ListBox1.Items.Text} +  //'?cc=' + edit2.text + '&cco=' + Edit3.text + '&subject=' + edit4.text +//  '&body=' + Memo1.lines.text;//  shellexecute(self.handle, 'open',pchar(stringshellexecute),'','',sw_shownormal);end;
procedure TfrmEnviaEmail.SpeedButton2Click(Sender: TObject);var SS:TStringStream; caminho : string;beginif OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); SS:=TStringStream.Create(BitmapToRtf(Image1.Picture.Bitmap)); JvRichEdit1.PlainText:=False; JvRichEdit1.StreamMode:=[smSelection]; JvRichEdit1.Lines.LoadFromStream(SS); SS.Free;end;
procedure TfrmEnviaEmail.SpeedButton3Click(Sender: TObject);var xAnexo : Integer;    x: integer;beginIdMessage.Recipients.EMailAddresses := edtPara.Text;IdMessage.CCList.EMailAddresses := edtCC.Text;IdMessage.BccList.EMailAddresses := edtCCO.Text;
//Trata a Prioridade da mensagemcase cbxPrioridade.ItemIndex of0 : IdMessage.Priority := mpHigh;1 : IdMessage.Priority := mpNormal;2 : IdMessage.Priority := mpLow;end;
IdMessage.Subject := edtAssunto.Text;IdMessage.Body := JvRichEdit1.Lines;
if cbxConfirmaLeitura.Checked thenIdMessage.ReceiptRecipient.Text := IdMessage.From.Text; // Auto Resposta
//Tratando os arquivos anexosfor xAnexo := 0 to ListBox1.Items.Count-1 do   TIdAttachmentFile.create(idmessage.MessageParts, TFileName(ListBox1.Items[xAnexo]));
tryIdSMTP.Connect;{Gauge.MaxValue:= mmMensagem.Lines.Count - 1;Gauge.Progress:=0;Gauge.Visible:=True;Gauge.Refresh;for x:=0 to mmMensagem.Lines.Count - 1 do    begin      Gauge.Progress:= Gauge.Progress + 1;      Gauge.Repaint;      IdSMTP.Send(IdMessage);    end;    Gauge.Visible:=False;    Gauge.Repaint;  }finallyIdSMTP.Disconnect;end;Application.MessageBox('Email enviado com sucesso!', 'Confirmação', MB_ICONINFORMATION + MB_OK);end;
end.
Fernando Farah

Fernando Farah

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar