AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

EMail-Versand via SMTP/Mapi

Ein Thema von BerTa · begonnen am 28. Jun 2016 · letzter Beitrag vom 4. Jul 2016
Antwort Antwort
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: EMail-Versand via SMTP/Mapi

  Alt 29. Jun 2016, 12:22
Ich mache das in hier in einer Anwendung so wie Sir Rufo es gesagt hat. Der Versand des Dokumentes erfolgt ganz normal via SMTP. Nach erfolgreichem Versand kopiert die Anwendung die generierte EMail in den "gesendet" Ordner des entsprechenden IMAP Kontos. Dazu reicht die Indy Funktionalität locker aus. Welcher Ordner in welchem Konto verwendet wird halte ich konfigurierbar. So mache ich es beim Rechnungsausgang und auch beim Versand von anderen Dokumenten an unsere Kunden. Klappt einwandfrei.
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: EMail-Versand via SMTP/Mapi

  Alt 29. Jun 2016, 13:32
Klappt einwandfrei.
Denn:
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.359 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: EMail-Versand via SMTP/Mapi

  Alt 29. Jun 2016, 13:53
Nach erfolgreichem Versand kopiert die Anwendung die generierte EMail in den "gesendet" Ordner des entsprechenden IMAP Kontos. Dazu reicht die Indy Funktionalität locker aus.
Ist zwar nicht mein Thread...aber
hast du noch einen paar Stichworte zum Speichern mit Indy!

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: EMail-Versand via SMTP/Mapi

  Alt 29. Jun 2016, 14:06
Schau dir mal TIdIMAP4.AppendMsg an, damit kann man eine email zu einem Ordner hinzufügen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: EMail-Versand via SMTP/Mapi

  Alt 29. Jun 2016, 15:15
Nach erfolgreichem Versand kopiert die Anwendung die generierte EMail in den "gesendet" Ordner des entsprechenden IMAP Kontos. Dazu reicht die Indy Funktionalität locker aus.
Ist zwar nicht mein Thread...aber
hast du noch einen paar Stichworte zum Speichern mit Indy!

Frank
Schnell aus dem Kopf:

Delphi-Quellcode:

function CopyToImapFolder(msg:TIdMessage; imapHost,imapFolder,imapUser,imapPassword:string):boolean;
begin
    result := false;
    i4 := TIdIMAP4.Create(NIL);
    try
      i4.Host := imapHost;
      i4.Password := ImapPassword;
      i4.Username := ImapUser;
      if i4.Connect() then begin
        result := i4.AppendMsg(imapfolder,msg,NIL,[mfseen]);
        i4.disconnect();
      end;
    finally
      i4.free;
    end;
end;
hth
Martin
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.359 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: EMail-Versand via SMTP/Mapi

  Alt 29. Jun 2016, 17:13
Herzlichen Dank an Martin und Sir Rufo...

Ich habe es gerade mal getestet. Funktioniert!

Frank
Frank Reim
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: EMail-Versand via SMTP/Mapi

  Alt 1. Jul 2016, 13:52
Hi,
vielen Dank für die Hilfe,
mit Imap hatten wir es auch schonmal probiert.
Hatten, bzw. haben gelegentlich das Problem, dass sich unser Programm aufhängt.
Der Versand per SMTP hat geklappt, aber im Versand Ordner ist keine Kopie zu finden.
Er scheint sich beim Connect aufzuhängen.
Woran kann sowas liegen? Es kommt nicht immer vor.
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: EMail-Versand via SMTP/Mapi

  Alt 1. Jul 2016, 15:03
IdR müsste der Connect auch einen Timeout haben. Wenn der aber default auf INFINITE steht, dann wartest du eben bis "end of days"

Also TimeOut für den Connect mitgeben und entsprechend darauf reagieren.

Es macht da durchaus Sinn mit entsprechenden Warteschlangen zu arbeiten, die von den beiden Diensten Sende per SMTP, Verschiebe in Versand-Ordner (laufen jeweils im eigenen Thread) abgearbeitet werden.

Die Daten liegen dafür lokal auf der Platte und werden dann wenn möglich abgearbeitet. Stürzt dein Programm ab, dann wird beim nächsten Start einfach an der Stelle weitergemacht
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: EMail-Versand via SMTP/Mapi

  Alt 4. Jul 2016, 10:32
Nach einem Neustart des Programms habe ich keine Probleme ein EMail zu versenden.
Wenn ich aber die IMAP Daten den Bediener zuordnen will und die MailBoxen abfragen, bekomme ich danach Probleme beim Versenden -> ReadTimeOut
Schon merkwürdig, dass es in der Konstellation immer auftritt.

Code:
  IMAP := TIdIMAP4.Create(nil);
  IMAP.Host    := bedDM.MyQBedimap_server.Value;
  IMAP.Port    := bedDM.MyQBedimap_port.Value;
  IMAP.Username := bedDM.MyQBedimap_account.Value;
  IMAP.Password := bedDM.MyQBedimap_pw.Value;
  //LTheSASLListEntry := TheSmtp.FSASLMechanisms.Add;
  //LTheSASLListEntry.SASL := TheSASLLogin;
  IMAP.ReadTimeout   := 10000;
  IMAP.ConnectTimeout := 10000;
  if IMAP.Connect then
  begin
    IMAP.ListMailBoxes(UsersFolders);
    for i := 0 to UsersFolders.Count-1 do
      cxComboIMAPSent.Properties.Items.Add(UsersFolders[i]);
    IMAP.Disconnect;
  end;

  if IMAP <> nil then
  begin
    IMAP.Free;
    IMAP := nil;
  end;
Code:
  IMAP := TIdIMAP4.Create(self);

  IMAP.Host := ApsToolDM.MyQBedDatenimap_server.Value;
  IMAP.Port := ApsToolDM.MyQBedDatenimap_port.Value;
  IMAP.Username := ApsToolDM.MyQBedDatenimap_account.Value;
  IMAP.Password := ApsToolDM.MyQBedDatenimap_pw.Value;
  IMAP.ReadTimeout   := 5000;
  IMAP.ConnectTimeout := 5000;
  if IMAP.Connect then
  begin
    Imap.AppendMsg(APsToolDM.MyQBedDatenimap_sent.Value,IdMsgSend,NIL,[mfseen]);
    if IMAP.Connected then
      IMAP.Disconnect;
  end;
  if IMAP <> nil then
  begin
    IMAP.Free;
    IMAP := nil;
  end;
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz