procedure TMSFmDokumentVerwaltung.VersendeMail;
var
pMailBetreff:
string;
pMailAdresse:
string;
pMailAnhang:
string;
pMailBody: TRichEdit;
pErrMsg:
string;
IDAttachmentList: TStringList;
IDAttachment : TIdAttachmentFile;
i: Integer;
begin
if not MeldeMailServerAn
then
begin
MessageBox(0, '
Es konnte keine Verbindung zum Mailserver' + #13#10 +
'
aufgebaut werden!', '
BPS WAWI . . .', MB_OK + MB_ICONSTOP);
Exit;
end;
if dbdvgrdAlleSendeMail.RowCount = 0
then
begin
MessageBox(0, '
Es stehen keine Mails für' + #13#10 +
'
das Versenden bereit!', '
BPS WAWI . . .', MB_OK + MB_ICONINFORMATION);
Exit;
end;
MKA.alledokumente.First;
while not MKA.alledokumente.Eof
do
begin
pErrMsg := '
';
pMailBody := redtMailBody;
pMailBody.Clear;
pMailBetreff := '
';
pMailAdresse := '
';
pMailAnhang := '
';
pMailAdresse := HoleEmailAdresseVomEmpfaenger(
MKA.alledokumenteADRESSID.AsInteger);
pMailBetreff := edtMailBetreff.Text;
pMailAnhang := MKA.alledokumenteDOKUMENTPFAD.AsString + '
\'
+ MKA.alledokumenteDOKUMENTNAME.AsString + '
,' + FPfadNameAGB;
pMailBody.Lines.Clear;
pMailBody.Lines.Insert(0, MKA.alledokumenteMAILTEXT.AsAnsiString);
idmsgSendeMail.Clear;
idmsgSendeMail.MessageParts.Clear;
idmsgSendeMail.Date := Now;
idmsgSendeMail.ContentType := '
multipart/related + multipart/mixed '
+ '
+ text/plain + text/html + multipart/alternative + application/pdf';
idmsgSendeMail.CharSet := '
ISO-8859-1';
idmsgSendeMail.From.Text := FMailSender;
idmsgSendeMail.Sender.Text := FMailSender;
idmsgSendeMail.Recipients.EMailAddresses := pMailAdresse;
idmsgSendeMail.Subject := pMailBetreff;
idmsgSendeMail.Body.Append(redtMailBody.Text);
if pMailAnhang <> '
'
then
begin
IDAttachmentList := TStringList.Create;
IDAttachmentList.CommaText := pMailAnhang;
for i := 0
to IDAttachmentList.Count -1
do
begin
idmsgSendeMail.IsEncoded := True;
IDAttachment := TIdAttachmentFile.Create(idmsgSendeMail.MessageParts,
IDAttachmentList.Strings[i]);
IDAttachment.FileName := ExtractFileName(IDAttachmentList.Strings[i]);
IDAttachment.ContentType := '
application/octet-stream';
IDAttachment.OpenLoadStream;
IDAttachment.CloseLoadStream;
end;
end;
// Mail versenden
try
idsmtpSendMail.Send(idmsgSendeMail);
pMailBody.Lines.Delete(0);
ReDokumente.MailGesendet := '
J';
ReDokumente.MailGesendetAm := Now;
IDAttachmentList.Free;
except
on E:
Exception do
begin
pErrMsg := e.
Message;
if idsmtpSendMail.LastCmdResult.Code <> '
'
then
pErrMsg := idsmtpSendMail.LastCmdResult.Text.Text
+ #13#10 + '
--'
+ #13#10 + pErrMsg;
ReDokumente.MailGesendet := '
N';
IDAttachmentList.Free;
end;
end;
MKA.alledokumente.Next;
end;
ReDokumente.DoOpenTabelleNichtGesendeteDokumente;
LeseDokumenteInVSTEin;
MKA.alledokumente.First;
end