Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 从Fast报告使用TfrxMailExport_Email_Fastreport_Delphi 10.4 Sydney - Fatal编程技术网

Email 从Fast报告使用TfrxMailExport

Email 从Fast报告使用TfrxMailExport,email,fastreport,delphi-10.4-sydney,Email,Fastreport,Delphi 10.4 Sydney,我在Delphi中使用快速报告时遇到问题, 我使用的对象是TfrxMailExport, 我面临的问题是电子邮件服务器的值没有被正确填充 守则: email := TfrxMailExport.Create(self); email.Subject := 'Teste'; email.Lines.Clear; email.Lines.Add('Linha 1'); email.Lines.Add('Linha 2'); email.Lines.Add('Linha 3'); email.Line

我在Delphi中使用快速报告时遇到问题, 我使用的对象是TfrxMailExport, 我面临的问题是电子邮件服务器的值没有被正确填充

守则:

email := TfrxMailExport.Create(self);
email.Subject := 'Teste';
email.Lines.Clear;
email.Lines.Add('Linha 1');
email.Lines.Add('Linha 2');
email.Lines.Add('Linha 3');
email.Lines.Add('Linha 4');
email.Address := 'email@email.com';
email.SmtpHost := '0.0.0.0';
email.SmtpPort := 25;
email.FromMail := 'email.email@email.com';
email.FromName := 'NAME';
email.Login := 'Login';
email.Password := 'Password';

email.TimeOut := 30;
email.Report := Rela;

rela.Export(email);
email.Destroy;

由于帖子不太可能得到答案(如果有),我将发布我的解决方案,以防有人遇到同样的问题

我创建了一个类似于Fast Reports中的表单,我将FR文件导出为PDF,这一个很好用

Procedure SomeProc();
var pdf : TfrxPDFExport;
begin
  pdf := TfrxPDFExport.Create(self);
  pdf.Compressed := True;
  pdf.EmbeddedFonts := False;
  pdf.Background := True;
  pdf.PrintOptimized := False;
  pdf.Outline := False;
  pdf.Transparency := False;
  pdf.Quality := 95;
  pdf.ProtectionFlags := [eModify, eCopy, eAnnot];
  pdf.OpenAfterExport := False;
  pdf.ShowProgress := False;
  pdf.ShowDialog := false;
  pdf.FileName := 'C:\SomeFolder\'+fileName+'.pdf';
  pdf.HideToolbar := False;
  pdf.HideMenubar := False;
  pdf.HideWindowUI := False;
  pdf.FitWindow := False;
  pdf.CenterWindow := False;
  pdf.PrintScaling := False;
  myReport.Export(pdf);
end;
然后,对于电子邮件,我使用了一个C#.Net DLL,并从Delphi应用程序调用它

C#代码:

最后,用Delphi调用它

function SendEmail(txtTo, txtToCC, txtToBCC, txtSubject, txtMessage, txtFrom, txtServer, txtPort, txtUtilizador, txtPasse, txtFicheiro : PAnsiChar; cbSSL : Boolean) : PAnsiChar; stdcall; external 'SendEmail.dll';


showmessage(SendEmail(PAnsiChar(AnsiString('To'))
               , PAnsiChar(AnsiString('ToCC'))
               , PAnsiChar(AnsiString('ToBCC'))
               , PAnsiChar(AnsiString('Subject'))
               , PAnsiChar(AnsiString('Message'))
               , PAnsiChar(AnsiString('From'))
               , PAnsiChar(AnsiString('Server'))
               , PAnsiChar(AnsiString('Port'))
               , PAnsiChar(AnsiString('User'))
               , PAnsiChar(AnsiString('Pass'))
               , PAnsiChar(AnsiString('File'))
               , SSL));
我犯了几个错误,比如使用一个函数来转换字符串,而不必编写每个字符串,因为某些原因它不起作用。 该函数需要指定它是stdcall

function SendEmail(txtTo, txtToCC, txtToBCC, txtSubject, txtMessage, txtFrom, txtServer, txtPort, txtUtilizador, txtPasse, txtFicheiro : PAnsiChar; cbSSL : Boolean) : PAnsiChar; stdcall; external 'SendEmail.dll';


showmessage(SendEmail(PAnsiChar(AnsiString('To'))
               , PAnsiChar(AnsiString('ToCC'))
               , PAnsiChar(AnsiString('ToBCC'))
               , PAnsiChar(AnsiString('Subject'))
               , PAnsiChar(AnsiString('Message'))
               , PAnsiChar(AnsiString('From'))
               , PAnsiChar(AnsiString('Server'))
               , PAnsiChar(AnsiString('Port'))
               , PAnsiChar(AnsiString('User'))
               , PAnsiChar(AnsiString('Pass'))
               , PAnsiChar(AnsiString('File'))
               , SSL));