View Issue Details

IDProjectCategoryView StatusLast Update
0000174FakturamaAllgemein (General)public2021-06-10 17:51
ReporterHolger_01Assigned Torheydenr  
PriorityhighSeverityfeatureReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version1.6 
Target Version2.1.2Fixed in Version2.1.2 
Summary0000174: Rechnung per Email versenden
Description

Der Versand eines Angebotes/Auftragsbestätigung/Rechnung u.s.w aus Fakturama heraus per Email sowie setzen des Flags "Versendet" ähnlich wie gedruckt

TagsNo tags attached.

Relationships

has duplicate 0000317 closedrheydenr E-Mailversand 
has duplicate 0000353 closedrheydenr Erweiterung - Senden zu - Thunderbird 
has duplicate 0000467 closedrheydenr [FAK-468 (alt)] Rechnung per E-Mail versenden 
has duplicate 0000385 closedrheydenr [FAK-385 (alt)] Rechnung direkt an die hinterlegte email Adresse per pdf senden 

Activities

LastBoyScout

2021-04-23 14:47

reporter   ~0001191

Dies ist ja einer der ältesten Einträge und zugleich auch einer der häufigsten Feature- Wünsche. Leider ist dessen Umsetzung dennoch in all den Jahren mehrfach nach hinten verschoben worden.
Angesichts der mit der Corona-Pandemie einhergehenden Kontaktreduzierungen hat sich die Anzahl der per Mail zu versendenden Belege bereits seit 2020 hingegen rapide gesteigert.
Leider ist dies mit Fakturama jedoch noch immer nicht direkt möglich und daher bis dato noch immer eine ziemlich zeitraubende und nervige Aufgabe...
Schließlich muss man dazu nach jeder Belegerstellung:

  1. in das Mailprogramm wechseln
  2. aus der zur Belegart gehörenden Mailvorlage eine neue Nachricht erstellen
  3. die korrekte Mailadresse des Kunden heraus suchen
  4. diese in das Empfängerfeld eintragen bzw. kopieren
  5. die benötigten Daten (Belegnummer etc.) in die Textbausteine übernehmen
  6. das jeweilige PDF im Ausgabeverzeichnis suchen und an die Nachricht anhängen
  7. alles nochmal prüfen (korrekter Empfänger, richtiges PDF, valide Daten)
  8. Schlussendlich die Mail absenden
    Uffz geschafft! Jetzt aber wieder schnell zurück zu Fakturama und schon beim nächsten Beleg wieder von vorne.

Ich möchte daher hiermit dafür plädieren, diesen lang gehegten Feature- Wunsch auf eine Umsetzung bereits in der nächsten Version 2.1.2 vor zu ziehen!
Dies würde nicht nur den Zeitaufwand und potentielle Fehler durch den manuellen Versandprozess ersparen, sondern wäre auch gut für unsere Umwelt, das Klima und die eigene Portokasse.

Ich wäre diesbezüglich übrigens für einen eigenständigen Versand über SMTP und nicht für die Nutzung des jeweiligen Mailprogramm. Da letzteres nur wieder zu fehleranfälligen Abhängigkeiten führen würde. Hierfür gibt es doch mit Sicherheit etliche nutzbare Java- Bibliotheken.

rheydenr

2021-04-23 21:37

administrator   ~0001192

Last edited: 2021-04-23 22:25

Ich denk mal drüber nach. Das Problem ist, daß es ein ziemlich umfangreicher Brocken ist. Ich liste mal spontan paar Punkte auf, die dazugehören:

  • neue Einstellungsseite (Preferences) für E-Mail-Server
  • Vorlagenverarbeitung für Mailvorlagen implementieren (unterschiedliche Vorlagen pro Dokumentart)
  • Generierung einer validen Mail mit Empfängeradresse, die aus den Kundendaten genommen wird; incl. PDF-Anhang
  • konfigurierbarer Betreff (pro Dokumentart)
  • gesendete E-Mail irgendwo ablegen?

mögliche auftretende Fehler abfangen:

  • keine passende Vorlage vorhanden
  • keine Verbindung zum Server möglich
  • keine E-Mail-Adresse vorhanden
  • Fehler beim Senden
    ... mit entsprechenden Meldungen und Möglichkeiten der Fehlerbehandlung

Der Aufwand dazu dürfte bei locker 40h oder mehr liegen...

siehe dazu auch https://www.simplejavamail.org
und jakarta.mail (https://eclipse-ee4j.github.io/mail)

LastBoyScout

2021-04-26 15:09

reporter   ~0001198

Das dies nicht mal eben so nebenbei implementiert werden kann, leuchtet absolut ein. Aber evtl. könnte man es ja etwas schlanker umsetzen... braucht es hierzu denn wirklich einer Vorlagenverarbeitung oder genügt nicht auch je ein Standarttext für Betreff und Nachricht für alle Dokumentarten? Mittels der entsprechenden Platzhalter könnte man ja Ersetzungen vornehmen, so das abweichende Formatierungen je Dokumentart wohl kaum benötigt werden. Und dies könnte ebenfalls mit in der neu zu schaffenden Einstellungsmaske hinterlegt werden.

Die Mail selber würde ich innerhalb Fakturama nicht hinterlegen, sondern nur Versandzeitpunkt und Rückmeldung des Mailserver. Stattdessen würde ich einen optionalen BCC in den Einstellungen ermöglichen, so das man sich bei Bedarf eine Nachrichtenkopie senden kann.

Der Mailversand sollte m.E. auch nicht völlig im Hintergrund ablaufen, sondern ein entsprechender Versanddialog anhand der getroffenen Einstellungen vor ausgefüllt werden. So kann der Anwender entweder noch Änderungen (z.B. andere Mailadresse oder/und Textänderungen) vornehmen oder mit nur einem weiteren Klick gleich absenden. In den Maileinstellungen sollte dazu ein Häkchen gesetzt werden können, dass dieser Dialog nach erfolgreicher Erstellung eines PDF automatisch erscheinen soll. Manuell sollte man es zu jedem markierten Dokument anstoßen können, wenn zu diesem bereits ein PDF erzeugt wurde.

Die Empfängeradresse sollte aus der für die jeweilige Dokumentart zugeordneten Adresse übernommen werden. Ist hierzu keine vorhanden oder enthält keine Mailadresse, sollte auf die der Hauptadresse zurückgegriffen werden. Ist keine gültige Mailadresse hinterlegt, wird v.g. Maildialog mit den vorhandenen Daten befüllt, kann aber erst nach manueller Eingabe einer Mailadresse versandt werden.
Zum Validieren von Mailadressen unter PHP hatte ich mir vor längerer Zeit mal eine Funktion geschrieben ( gibt aber Bestimmt auch was besseres):
function checkemail($str) {
$nonascii = "\x80-\xff"; # Non-ASCII-Chars are not allowed
$nqtext = "[^\\$nonascii\015\012\"]";
$qchar = "\\[^$nonascii]";
$protocol = '(?:mailto:)';
$normuser = '[a-zA-Z0-9][a-zA-Z0-9
.-]';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";
$dommainpart = '[a-zA-Z0-9][a-zA-Z0-9.-]
\.';
$domsubpart = '(?:[a-zA-Z0-9][a-zA-Z0-9.-]\.)';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";
$regex = "$protocol?$user_part\@$domain_part";
return preg_match("/^$regex$/", $str); // RegEx end
}

Außer guter Ratschläge würde ich da wirklich gerne mehr Unterstützen, kenne mich aber leider definitiv viel zu wenig mit Java aus.

rheydenr

2021-04-29 21:29

administrator   ~0001201

Ggf. auch Aufnahme weiterer Dokumente aus einem bestimmten Ordner (AGB, Widerrufsbelehrung, Prospekte etc.).

Einstellungen -> Testmail senden; BCC-Feld einbauen

rheydenr

2021-05-21 12:14

administrator   ~0001210

Nach dem Drucken erscheint jetzt ein neuer Dialog, in dem man die zu sendende E-Mail nochmal kontrollieren und dann losschicken kann. Es können Anhänge hinzugefügt werden, weitere Empfänger (auch CC und BCC). Der Mailtext kann über ein Template im Vorlagenordner gesteuert werden (auch mit Platzhaltern).

Issue History

Date Modified Username Field Change
2013-05-06 23:36 Holger_01 New Issue
2013-05-23 19:31 rheydenr Target Version => Pipeline
2013-05-23 23:27 rheydenr Assigned To => rheydenr
2013-05-23 23:27 rheydenr Status new => assigned
2014-04-09 00:55 rheydenr Relationship added has duplicate 0000317
2017-12-30 22:55 rheydenr Relationship added has duplicate 0000353
2018-02-08 09:13 rheydenr Target Version Pipeline => 2.1.1
2018-02-10 20:22 rheydenr Relationship added has duplicate 0000467
2018-02-11 23:32 rheydenr Relationship added has duplicate 0000385
2020-02-12 14:04 rheydenr Target Version 2.1.1 => 2.1.2
2020-12-06 22:50 rheydenr Target Version 2.1.2 => 2.1.3
2021-02-08 12:48 rheydenr Target Version 2.1.3 => 2.1.4
2021-04-23 14:47 LastBoyScout Note Added: 0001191
2021-04-23 21:37 rheydenr Note Added: 0001192
2021-04-23 22:25 rheydenr Note Edited: 0001192
2021-04-26 15:09 LastBoyScout Note Added: 0001198
2021-04-29 21:29 rheydenr Note Added: 0001201
2021-05-02 20:54 rheydenr Target Version 2.1.4 => 2.1.2
2021-05-21 12:14 rheydenr Status assigned => resolved
2021-05-21 12:14 rheydenr Resolution open => fixed
2021-05-21 12:14 rheydenr Fixed in Version => 2.1.2
2021-05-21 12:14 rheydenr Note Added: 0001210