JsBergbau/BaikalAnleitung

Keine Einladung wenn Termin im Handy erstellt wird

Opened this issue · 24 comments

Hallo und vielen Dank für die Übersetzung!

Ich synce Baikal mithilfe von DAVX5 mit meinem Smartphone. Leider sendet Baikal bei mir keine Einladung raus, wenn ich den Termin vom Handy aus erstelle. Kannst du das bestätigen oder mache ich einen Fehler?

VG
Jens

Hallo Jens,

was genau meinst du mit Einladung versenden? Via E-Mail? In welcher Konstellation hat das bei dir geklappt?
Da kein Mailserver konfiguriert wurde kann zumindest keine Mail von Baikal verschickt werden....

Hi,
ich bin davon ausgegangen dass das geht, weil ich ja auch eine Adresse angebe, von der Baikal die Einladungen versenden möchte?
(unter System Settings -->Email invite sender address).

Viele Grüße
Jens

EDIT: Baikal versendet doch Mails, siehe unten.

Hi Jens,

ich habe für dich mal etwas recherchiert. E-Mails sind mit Baikal nicht möglich.
Sehr ausfürhlich ist das hier sabre-io/Baikal#190 diskutiert. Es steht dort auch eine Möglichkeit, wie man die Dateien konfigurieren müsste, dass es funktioniert, aber laut Berichten funktioniert das wohl trotzdem nicht.
Weiter geht es dann in sabre-io/Baikal#304 sowie sabre-io/Baikal#655
Hier ist dann ein Pull request sabre-io/Baikal#787 der die Funktionalität einbauen soll, aber da wird wohl noch auf eine weitere Kompotenente gewartet, bis es funktioniert.
Wenn es eingebaut ist, muss auf jeden Fall noch ein Mailserver konfiguriert werden über den die Einladungsmails verschickt werden sollen.
Laut owncloud/calendar#318 funktioniert das Verschicken von Einladungsmails auch nicht mit Owncloud. Allerdings ist diese Fehlermeldung von 2016. In der Zwischenzeit könnte sich etwas getan haben.

Vielen Dank für deine Mühe!

Ich hatte gehofft, Baikal als Alternative zu Nextcloud nehmen zu könnne, da ich von Nextcloud nur die CalDav/CardDav Fubktion nutze und Baikal hier deutlich kleiner wäre, aber da wird dann wohl nichts draus.

Danke und beste Grüße
Jens

Also das heißt, bei Nextcloud funktioniert das Versenden von Mails mittlerweile?

Aktuell nur in der Beta (bei mir 21.0.0 beta4).
Aber hier klappt es ohne Probleme. Es wird eine Mail versendet incl. "Akzeptieren" und "Ablehnen" Button und ics Anhang.
Das Annehmen/Ablehnen scheint noch nicht zu funktionieren.
Dazu ist in der Mail ein Link, mit dem du auf einer Weboberfläche landest, hier kann der Eingeladene die Anzahl der zusätzlichen Gäste sowie einen Kommentar eingeben. Hier kommt aber auch noch eine Fehlermeldung.

Update:
Ich war neugierig und habe einen Termin im Android Kalender erstellt und einen erstellten Testkontakt eingeladen. Ich habe an der Baikal Konfiguration nichts verändert. Es wurde tatsächlich eine Mail verschickt.

grafik

Im E-Mail-Header-Feld Reply-To steht die in Baikal für dieses Konto konfigurierte Mail-Adresse. Als Absender der bei mir auf diesem Raspberry PI konfigurierte Mailaccount.

Es fehlt bei dir also nur noch die Konfiguration eines Mailsystems. Ich empfehle dir nullmailer. Dieser ist sehr schlank, hat aber eine Messagequeue, d.h. erstellt du gerade Termine und er kann deinen Mailprovider nicht erreichen, dann versucht er es später erneut. Bei den meisten Mailsystemen, die man so einrichten kann, verschwindet dann die Nachricht im Nirwana.

Eine Anleitung für Nullmailer z.B. mit Gmail, gibt es z.B. hier https://wiki.archlinux.org/index.php/Nullmailer
Solltest du G-Mail haben: Denk daran, dass du bei G-Mail ein Apppasswort brauchst.

Ich empfehle dir auch noch den Nullmailer Rewrite Wrapper https://github.com/JsBergbau/nullmailer-Rewrite-Wrapper/blob/master/README.md zu installieren. Damit kriegst du Nachrichten, die dir das system zuschickt, wie von cron (ohne eine Mailadresse zu konfigurieren) auch an deine vorkonfigurierte Adresse zugeschickt. Wenn man auf dem Rasbperry einen Benutzernamen wie karlmustermann hat, gehen sonst die Mails im G-Mail Fall dann an "karlmustermann@gmail.com". Solche Fälle gab es schon. "pi" oder "root" @gmail.com werden zwar von Gmail blockiert, aber dennoch gehen ohne das Wrapper Skript erstmal alle diese Daten an Google oder einen anderen Mailanbieter.

Eine Bitte: Kannst du die Schritte zum Einrichten des nullmailer Mail Systems kurz dokumentieren? Dann nehme ich das in die Anleitung auf.

So sieht es dann aus. Es tauchen auch die Buttons Aktzeptieren usw. auf, allerdings kam bei Klick auf "Akzeptieren" bei mir erstmal der Fehler 80004005. Das Lag aber daran, weil der Termin schon im Kalender war, weil ich mir den ja selbst zugeschickt hatte. Termin einfach nochmal aus dem Kalender gelöscht und nochmal auf akzeptieren geklickt und schon hat es funktioniert wie es soll. Es wurde auch nochmal eine Einladungsmail verschickt, da diese in der ics Datei mit enthalten ist und Baikal beim Abspeichern das dann offensichtlich nochmal verarbeitet.
Ein im Thunderbird abgelehnter Termin erscheint dann auf dem Android im Kalender als durchgestrichen formatiert.

Einen Link zu einer Weboberfläche gibt es natürlich nicht, da Baikal dazu ein entsprechendes System besitzen müsste und man müsste Baikal aus dem Internet zugänglich machen, was wir ja nicht unbedingt wollen.

grafik

Weitere Tests zeigten, es dauert manchmal ein bis zwei Minuten bis die Mail versendet wird. Das liegt irgendwo an Baikal oder bis DAVx5 es zu Baikal synchronisiert hat. Also etwas geduldig sein.
Wichtig ist unter den Baikal Einstellungen irgendwas in Email invite sender address stehen zu haben. Bei mir reicht ein a. Als Abensender nimmt er den im Nullmailer konfigurierten Absender.
grafik

Bei mir läuft Baikal auf einem gehosteten Webserver mit Plesk, nicht auf einem Raspberry Pi.
Bekomme ich Nullmailer hier überhaupt installiert?
Woher "weiß" Baikal, dass er über Nullmailer versenden soll?

Überprüfung mit dieser Anleitung ergibt, dass die Mail versandt wird. Das PHP Mailsystem scheint also zu funktionieren.

Bekomme ich Nullmailer hier überhaupt installiert?

Wenn es kein Paket für dein System gibt, kannst du ihn selbst komplierieren https://github.com/bruceg/nullmailer ansonsten geht jeder andere Mailer auch.

Woher "weiß" Baikal, dass er über Nullmailer versenden soll?

Sobald nullmailer installiert ist, gibt es eine Anwendung namens sendmail diese lässt sich aufrufen. Das gilt aber praktisch für jeden Mailagenten, den man installieren kann. Früher hatte ich z.B. ssmtp https://de.wikipedia.org/wiki/SSMTP installiert, aber der hat eben keine Warteschlange. Du kannst jeden beliebigen Mailer installieren.

Überprüfung mit dieser Anleitung ergibt, dass die Mail versandt wird. Das PHP Mailsystem scheint also zu funktionieren.

Und die Mail ist auch bei dir im Mailaccount angenkommen, aber wenn du dich selbst via Baikal einlädst, kommt meine Mail, korrekt?

Und die Mail ist auch bei dir im Mailaccount angenkommen, aber wenn du dich selbst via Baikal einlädst, kommt meine Mail, korrekt?

Ja genau. Beim Aufrufen der Seite wie unter dem o.a. Link beschrieben wird die Mail an mein Postfach versendet. Über Baikal funktioniert dies leider nicht.

Welche Version von Baikal hast du? E-Mail invite sender address hast du korrekt ausgefüllt? Siehe weiter oben bzw. Link zum Beitrag #4 (comment)
Den nullmailer rewrite wrapper hast du auch installiert?

Wenn ja, schau mal bitte was
cat /var/log/syslog | grep nullmailer kurz nach dem Erstellen eines Termins mit Einladung sagt. Wenn du da etwas siehst, dann funktioniert die Schnittstelle zu Baikal und der Fehler liegt noch wanders.

Hallo,

ich habe leider das gleiche Problem, sprich wenn ich einen Termin im Handy erstelle und einen weiteren Teilnehmer eintrage, wird keine Einladungsemail gesendet.

Bei der Installation/Einrichtung von Baikal habe ich mich grob an die Anleitung von @JsBergbau https://github.com/JsBergbau/BaikalAnleitung gehalten. In ein paar Dingen weicht meine Konfiguration jedoch ab:
Anstatt des aktuellen Quellcodes, habe ich den aktuellen Release von Baikal, also Version 0.8.0, verwendet.
Als Webserver habe ich mich für lighttpd entschieden, da ich dachte, dass der noch ein bisschen einfacher als nginx ist - war wohl eventuell ein Fehler.

nullmailer und den nullmailer rewrite wrapper habe ich entsprechend der Anleidungen von @JsBergbau installiert.
Als E-Mail invite sender address habe ich dieselbe Adresse, wie die Absenderadresse im nullmailer rewrite wrapper, eingestellt.

Das Senden einer Testemail aus dem Terminal mittels sendmail funktioniert ohne Probleme, ebenso das Senden einer Email mittels PHP. In beiden Fällen ist über journalctl auch ersichtlich, dass nullmailer aktiv wird und erfolgreich ist.
Nur wenn ich einen Termin im Handy erstelle und jemanden dazu einlade, passiert nichts: Es kommt keine Email an und in journalctl ist auch nicht ersichtlich, dass nullmailer überhaupt aktiv wird.

Daraus ergeben sich für mich folgende Fragen:

  • Entsprechend dem Baikal changelog gehe ich davon aus, dass das Versenden von Einladungen auch mit dem Release 0.8.0 möglich sein müsste. Sehe ich das richtig?
  • Könnte mein Problem an der Verwendung von lighttpd liegen? Ist der Webserver hier in den Prozess des Emailversendens eingebunden und wenn ja wie? (Sorry für die dumme Frage. Das ist für mich alles noch Neuland.)
  • Gibt es irgendwo ein log, wo man sehen könnte, ob Baikal überhaupt versucht die Email zu erstellen und zu senden und wo die dann eventuell hängen bleibt? (/var/log/syslog existiert bei mir nicht)

Hier komme ich leider nicht weiter und hoffe, dass ihr mir vielleicht helfen könnt.

Viele Grüße,
Paul

Hallo pschuenemann
Das ist ein offensichtlich ein sehr schwierig zu findender Fehler.
Es ist denkbar, dass Version 0.8.0 etwas anders macht, sodass keine Mails mehr versendet werden. Die Version von sabredav hat sich geändert. Da sind eine Menge Abhängigkeiten.
Wenn du wirklich herausfinden willst was es ist, bleibt dir wohl nur die Konfiguration 1:1 zu übernehmen und dann Schritt für Schritt jedesmal prüfen, ob der Mailversand noch funktioniert.

Welches System liegt denn bei dir drunter, wenn kein syslog existiert?

Hallo,

das hatte ich befürchtet, dass es nicht so einfach ist.
Welche Baikal-Version hast du aktuell installiert? Funktioniert da der Mailversand?

Bei mir liegt ein dietpi als OS drunter.

Vielen Dank für deine Hilfe.

Ich habe aktuell 0.7.1, Ja der Mailversand funktioniert, siehe oben bzw Link #4 (comment)
Es ist denkbar, dass bei dietpi Pakete fehlen, die für den Mailversand zuständig wären.
Ich würde direkt mit einem Raspberry PI OS Light wie im Artikel beschrieben es nochmals probieren.

Danke für die schnelle Antwort.
Ja, dann werde ich es wohl nochmal komplett neu aufsetzen. :-(
Hatte gehofft, ich komm vielleicht drum rum, aber Übung macht ja den Meister.

So, jetzt hab ich nochmal ein bisschen rumprobiert und es letztlich auch geschafft :-).

Mein Fehler lag darin, dass ich in DAVx5 auf meinem Handy einen beliebigen Kontonamen gewählt hatte. Hier muss scheinbar als Kontoname unbedingt die Email-Adresse des Benutzers gewählt werden, also die Email-Adresse die auf der Admin-Oberfläche bei Users and Resources für den entsprechenden User eingestellt ist.
Wenn ich das so einstelle, werden bei mir nun auch Einladungsemails versendet. Wähle ich einen anderen Kontonamen, funktionieren die Emaileinladungen nicht.

Weiterhin haben meine Tests ergeben, dass, wenn der Kontoname entsprechend richtig gewählt ist, die Einladungsemails

  • auch mit dietpi + lighttpd,
  • und unabhängig von der Baikalversion (getestet wurden 0.7.1 und 0.8.0)

funktionieren.

Leider habe ich auch festgestellt, dass ein Microsoft Exchange Server mit den von Baikal gesendeten Einladungsemails scheinbar nicht soviel anfangen kann. Einladungsemails an Email-Adressen die auf einem solchen Server laufen, werden dort zumindestens in dem von mir getesten Fall einfach im Klartext angezeigt (siehe unten), ohne Möglichkeit den Termin einfach per Button in den Kalender zu übernehmen.
Kann das jemand bestätigen? Oder muss ich da vielleicht doch nochmal irgendwo was anders einstellen?

Gruß Paul

Beispiel für die Anzeige einer Einladungsemail an den Nutzer eines Microsoft Exchange Server:

Content-Type: text/calendar; charset=UTF-8; method=REQUEST

X-Sabre-Version: 4.1.0
Date: Fri, 09 Apr 2021 13:09:33 +0200
Message-Id: 1617966573.859842.11228.nullmailer@nullhost
From: Name Name@company.de
X-Provags-ID: [...]

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.3.0//EN
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:1970329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20210409T110917Z
LAST-MODIFIED:20210409T110933Z
UID:59f08ef9-5f74-4aff-8cc5-e5a4d54aebc1
SUMMARY:test 2
ORGANIZER;ROLE=REQ-PARTICIPANT:mailto:Benutzer1@company.org
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION:mailto:Teilnehmer@company2.de
DTSTART;TZID=Europe/Berlin:20210409T114500
DTEND;TZID=Europe/Berlin:20210409T124500
TRANSP:OPAQUE
DTSTAMP:20210409T110933Z
END:VEVENT
END:VCALENDAR

Mein Fehler lag darin, dass ich in DAVx5 auf meinem Handy einen beliebigen Kontonamen gewählt hatte. Hier muss scheinbar als Kontoname unbedingt die Email-Adresse des Benutzers gewählt werden, also die Email-Adresse die auf der Admin-Oberfläche bei Users and Resources für den entsprechenden User eingestellt ist.

Wie hast du es denn geschafft da einen anderen Benutzernamen zu vergeben? Er macht doch automatisch die E-Mail-Adresse als Kontonamen
grafik

Ja, es wird automatisch die Email-Adresse eingetragen, aber das muss man so nicht übernehmen, sondern kann in dem Feld manuell auch was anderes eintragen - was, wie ich jetzt gelernt habe, aber ungünstig ist.
Ohne die Konsequenzen zu kennen, hatte ich mich hier in den ersten Tests verleiten lassen, einen anderen, frei gewählten Kontonamen einzutragen. So ist das mit diesen DAUs...

Sorry für die Umstände, die ich dadurch bereitet habe.
Und vielen Dank für den schnellen Support!!!!

Bitteschön. Danke dir, dass du das herausgefunden hast. Was ich in die Anleitung übernehmen werde, damit andere vor diesem Fehler bewahrt werden.

Erlaubt mir noch den Hinweis, dass es auf die Emailadresse des jeweiligen Benutzers, nicht auf die des Systems ankommt.
Die System-Email (unter Baikal System Settings) ist die "von" Adresse bei einer Einladung und eher unwichtig.
Die Adresse des Benutzers (unter "Users and Resources" beim jeweiligen User) muss mit dem Kontonamen übereinstimmen.
Ich hatte beim Testen den selben Fehler gemacht wie @pschuenemann . DAVX5 erlaubt keine 2 Konten mit dem selben Namen, also habe ich es kurzerhand überschrieben --> keine gute Idee ;-)

Mit diesen Einstellungen: [Mailadresse des Users in Baikal]=[Kontoname in DAVX5] werden die Einladungen nun endlich auch bei meinem auf einem Shared Hosting werkelnden Baikal versendet.