JsBergbau / BaikalAnleitung

Tutorial / Anleitung um mit Baikal Kontakte und Kalender sicher zu verwalten und speichern
53 stars 4 forks source link

Keine Einladung wenn Termin im Handy erstellt wird #4

Open Bl8Runnr opened 3 years ago

Bl8Runnr commented 3 years ago

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

JsBergbau commented 3 years ago

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....

Bl8Runnr commented 3 years ago

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

JsBergbau commented 3 years ago

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 https://github.com/sabre-io/Baikal/issues/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 https://github.com/sabre-io/Baikal/issues/304 sowie https://github.com/sabre-io/Baikal/issues/655 Hier ist dann ein Pull request https://github.com/sabre-io/Baikal/pull/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 https://github.com/owncloud/calendar/issues/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.

Bl8Runnr commented 3 years ago

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

JsBergbau commented 3 years ago

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

Bl8Runnr commented 3 years ago

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.

JsBergbau commented 3 years ago

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

JsBergbau commented 3 years ago

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

Bl8Runnr commented 3 years ago

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?

Bl8Runnr commented 3 years ago

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

JsBergbau commented 3 years ago

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?

JsBergbau commented 3 years ago

Hallo @Bl8Runnr Ich habe jetzt die Anleitung ergänzt wie man nullmailer einrichtet https://github.com/JsBergbau/BaikalAnleitung/blob/master/README.md#maildienst-einrichtung-optional-nur-f%C3%BCr-einladungsmails

Bl8Runnr commented 3 years ago

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.

JsBergbau commented 3 years ago

Welche Version von Baikal hast du? E-Mail invite sender address hast du korrekt ausgefüllt? Siehe weiter oben bzw. Link zum Beitrag https://github.com/JsBergbau/BaikalAnleitung/issues/4#issuecomment-755211892 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.

pschuenemann commented 3 years ago

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:

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

Viele Grüße, Paul

JsBergbau commented 3 years ago

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?

pschuenemann commented 3 years ago

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.

JsBergbau commented 3 years ago

Ich habe aktuell 0.7.1, Ja der Mailversand funktioniert, siehe oben bzw Link https://github.com/JsBergbau/BaikalAnleitung/issues/4#issuecomment-755191532 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.

pschuenemann commented 3 years ago

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.

pschuenemann commented 3 years ago

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

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

JsBergbau commented 3 years ago

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

pschuenemann commented 3 years ago

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!!!!

JsBergbau commented 3 years ago

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

Bl8Runnr commented 2 years ago

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.