Mailversand funktioniert nicht mehr

Status
Für weitere Antworten geschlossen.

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hi,

nun hab ich den Upgrade der Firmware gewagt.
Soweit hat alle sgeklappt nur funktioniert meine Maillösung nicht mehr.

Ich habe vor ca. zwei Jahren eingerichtet.

Mail abholen via getmail für jeden der User auf der Syno. Automatisiert per cron Job alle paar Minuten. Lief nun 2 Jahre tadellos.

so ; http://www.synology-wiki.de/index.php/Externe_Accounts_abrufen

Mail relay für jeden User eingerichtet laut Wiki damals.

so : http://www.synology-wiki.de/index.php/Mail-Relay_mit_Postfix

Lief genau so klasse.

Nun hab ich erst gedacht das ev. die Relay und PW Datanbanken nicht mehr da sind. eider finde ich jedoch das Verzeichniss /usr/syno/mailstaion nicht mehr um nachzusehen. Wo sind den nun die Einstellungne hin gewandert

Warum verschickt der nun keine Mails mehr, holt sie aber ab und sortiert die sauber ein. Der Zugriff der Clienten via Thunderbird klappt auch nach wie vor.

Danke Euch

Grüße

Richard
 

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo,

das Problem ist gelöst. Ich habe die main.cf in /var/packages/MailServer/target/etc editiert und meine alten Zusatzeinträge fürs User_dependent_Sender_Relay wieder aufgenommen.

sasl_passwd.db und sender_relay.db mit postfix neu generiert und den postfix neu gestartet. Schon wuppt das wieder wie vorher.

Soweit so gut.

Nach einem Reboot des Syno ist die main.cf aber überschrieben.
Das bekomme ich aber auch noch raus.

Grüße

Richard
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
es gibt für main.cf ein Template File. Wenn du dieses anpasst, dann bleiben die Änderungen erhalten
 

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hi Jahvlies,

und was soll ich da rein schreiben ? Meine Anpassungen an der main.cf hinten anhängen ?

Grüße

Richard
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wenn du noch eine angepasste main.cf hast würde ich diese komplett ins Template hauen. Und den gesamten Inhalt des Templates ersetzen
Vorher noch ein Backup beider Dateien wäre sicher auch nicht verkehrt :)
 

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hi,

ich hab meinen Kram einfach im template hinten angehangen und nu ist nach dem Neustart alles da.

Im Moment überlege ich aber was grundsätzliches.

Ich hab sowhl die Mailstation als auch den Mailserver installiert.

Den Mailserver hatte ich ursprünglich überhaupt nicht und trotzdem funktionierte alles. Roundcube nutze ich nicht sondern nur Thunderbird (auf den div. Rechnern der User) udn Android phones.

Brauche ich überhaupt das Paket MailServer ??

Wenn ja ist o.k. Nun hab ich gesehen das man einen Fetchmail daemon einrichten kann. Das wäre ja ev. besser als getmail mit cron zu nutzen.

Denn damit müßte dann auch Basalts mail_relaxer funktionieren. Es hilft ja nicht wenn der Postfix gestoppt wird aber alle 3 Minuten via cron der getmail gerufen wird.
Ist das richtig ? Wenn ja, wo finde ich eine gute anleitung für fetchmail ohen den ganzen Zarafa kram ?

Danke

Grüße

Richard
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ich habe vor langer Zeit mal hier im Forum ein Script reingestellt wo man getmail als "Daemon" nutzen kann. Das Teil prüft ob ein User am Mailserver angemeldet ist und ruft dann die Mails häufiger ab als wenn der User nicht angemeldet ist
Das Teil läuft bei mir seit Jahren auf einem Debian Server (ohne zu mucken)
Code:
#!/bin/bash
## NAME des getmail Scripts hier anpassen (ohne Pfadangabe!!!)
pfad_getmail=getmail.sh
# Pfad fuer Logfile hier angeben. ALLE Ausgaben des Skriptes werden hierhin umgeleitet
getmail_log=/var/log/getmaild.log


if [ "x$(cat /tmp/checkmaill)" != 'x' ]
then
  pid="$(cat /tmp/checkmaill)"
  if [ -z "$(ps aux | grep $pid | grep -v 'grep')" ]
  then
   echo > /tmp/checkmaill
  fi
fi
[ "x$(cat /tmp/checkmaill)" != 'x' ] && echo "Code rennt bereits" && exit 1
[ "$(whoami)" != "root" ] && echo "Das Script MUSS unter root laufen. Mittels su <user> holt das Script die Emails dann als <user> ab" && exit 1
[ ! -e $getmail_log ] && echo "Das Logfile unter $getmail_log konnte nicht gefunden werden" && exit 1
i=0
touch /tmp/checkmaill
echo $$ > /tmp/checkmaill
while true; do
 t=''
 if [ "x$(pidof imap)" != 'x' ] ; then
  for var in $(pidof imap) ; do
   [ ! -e /proc/$var ] && continue
   tt=$(ls -al /proc 2>/dev/null | grep $var | awk '{print $3}' | grep -v dovecot | grep -v root)
   if [ "$tt" != "$t" ] ; then
     for ii in `find /home/$tt -name $pfad_getmail`; do
#      echo "$ii" 
      $ii >> $getmail_log 2>&1
      done
     t=$tt
   fi
  done
  i=`expr $i + 1`
#  echo "Sleep 120s"
  sleep 120
#  echo "Next Round"
 else
  tt=''
#  echo 'No client connected'
  i=`expr $i + 1`
  sleep 1
  # hier legt man fest alle wieviele Sekunden ein Check erzwungen werden soll
  # auch wenn kein User angemeldet ist. Hier also jede Stunde
  if test `expr $i % 3600` -eq 0 ; then
   i=0
   for ii in `find /home/ -name $pfad_getmail`; do
#    echo 'Force check'
#    echo "$ii" 
    $ii >> $getmail_log 2>&1
   done
  fi
 fi
done
Wichtig ist dann das getmail.sh Script welches sich im Home des Users befinden muss. Da dieses Script als root aufgerufen wird muss dann dort drin mittels su zum korrekten User gewechselt werden. Sonst landen die Mails am falschen Ort!
Kann z.B. so ausschauen
Code:
#!/bin/sh
pid_getmail='/tmp/getmail.pid'
if [ "x$(cat $pid_getmail)" != 'x' ]; then
 echo 'Already running'
 exit
else
 touch $pid_getmail
 echo $$ > $pid_getmail
 echo "$(date) Start check"
 su USER -s /bin/sh -c "/usr/bin/getmail -v -d --getmaildir /home/USER/.getmail -r externerAccount1.rc -r externerAccount2.rc >> /var/log/USER_getmail.log 2>&1"
 echo > $pid_getmail
 exit
fi
Musst natürlich die Pfade noch anpassen. Die passen bei mir auf ein Debian v.a. den Pfad zu getmail wirst du wohl anpassen müssen. Zudem zum Testen am Besten -d wegmachen und mit -l (kleines L) ersetzen. Dann bleiben die Mails auf den externen Servern. Wenn alles durchgetestet ist kannst du -d wieder setzen
Soll aber nicht heissen, dass du nicht auch fetchmail verwenden kannst;-)

Den Mailserver brauchst du dann wenn du mit einem Client via POP3 oder IMAP Mails angucken willst und/oder wenn du direkt an der DS Mails von extern (via SMTP) empfangen willst
 

Basalt

Benutzer
Mitglied seit
06. Mai 2012
Beiträge
255
Punkte für Reaktionen
0
Punkte
0
Roundcube nutze ich nicht sondern nur Thunderbird (auf den div. Rechnern der User) udn Android phones.
[...]
Nun hab ich gesehen das man einen Fetchmail daemon einrichten kann. Das wäre ja ev. besser als getmail mit cron zu nutzen.
[...]
Denn damit müßte dann auch Basalts mail_relaxer funktionieren. Es hilft ja nicht wenn der Postfix gestoppt wird aber alle 3 Minuten via cron der getmail gerufen wird.
Ist das richtig ? Wenn ja, wo finde ich eine gute anleitung für fetchmail ohen den ganzen Zarafa kram ?
When you install Mail Station, you will also get fetchmail, actually you configure can fetchmail via Mail Station. You don't need Zarafa for this.

About using the Mail Relaxer package and android phones: I got feedback from 2 persons that their phones keep imap connection always open. Because of this, the Mail Relaxer thinks the mail client is still active on the phone and will not end processes and allow hibernation on the Syno. I don't know if this applies to all android versions. iPad works fine.

/Erik
 

Basalt

Benutzer
Mitglied seit
06. Mai 2012
Beiträge
255
Punkte für Reaktionen
0
Punkte
0
ich habe vor langer Zeit mal hier im Forum ein Script reingestellt wo man getmail als "Daemon" nutzen kann. Das Teil prüft ob ein User am Mailserver angemeldet ist und ruft dann die Mails häufiger ab als wenn der User nicht angemeldet ist

So I guess I owe you the credits for the idea behind the Mail Relaxer package !!
(knew I had seen it somewhere, but could not find it back)

Sorry for not mentioning that :eek:

/Erik
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
My laywer will get in touch with you ;) ;)

Cheers

Tobi
 

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hi Leute,

ich dachte alles wäre in Ordnung.

Aber weit gefehlt.

Immer wieder funktioniert das versenden von Mails nicht. Immer wieder ist die main.cf mit Müll vollgeschrieben nachdem das Syno neu gestartet wurde.

Wo finde ich eine Beschreibung was beim starten des Mailservers (beim reboot oder startup des syno) alles passiert.
Woher nimmt er die Infos um eine main.cf zusammen zu bauen.
Ich hatte die main.template mit meiner main.cf wie Tobi vorschlug überschrieben.
Trotzdem nimmt er wohl irgenwo her noch andere Einstellungen und baut eine neue main.cf zusammen. Die funktioniert dann aber nicht mehr.

Nehme ich meine main.cf her und starte damit den postfix neu dann läuft er einige Minuten und arbeitet richtig. Irgenwann ist dann wieder Feierabend.
In der Oberfläche des Mailservers unter protokolle finde ich auch immer Fehler beim Mailversand.
Absenden von meine.mail@web.de an empfang@mail.sonstwo ein Eintrag meien.mail@web.de an empfang@mail.sonstwo gesendet udn dirket darauf eine Zeile
Absender System an empfang@mail.sonstwo fehlgeschlagen.



Ach hätte ich doch die Finger weg gelassen und wäre auf DSM 2.3 geblieben. Damit lief alles 2 Jahre lang ohne Fehler.


Der cron im ipkg package scheinbt auch nicht mehr richtig zu laufen.

Wie im Wiki zu lesen habe ich im /root/.profile expot und path auskommentiert.

Beim logon root kommt nun immer:

BusyBox v1.16.1 (2013-04-16 20:13:10 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

: not found
-ash: umask: line 2: Illegal number: 022
: not found
: not found
: not found
: bad variable name13: HOME
DiskStation>

Gibt es eine Möglichkeit auf DSM 2.3 zurück zu gehen ?

Danke

Grüße

Richard
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
also bei der Fehlermeldung beim Login würde ich ja meinen du hast etwas "schrottiges" in der /root/.profile Zeig dieses File mal :)
Ich hatte die main.template mit meiner main.cf wie Tobi vorschlug überschrieben.

ich hoffe aber du hast nur den Inhalt überschrieben und nicht die Datei an sich. Die muss weiterhin main.template heissen. Wenn du sicher sein willst, dass dieses File nicht verändert werden kann, dann könntest du mal folgendes probieren und rebooten
Code:
chattr +i /volume1/@MailServer/etc/main.template
das setzt das Immutable Bit auf eine Datei und verhindert, dass diese geändert oder gelöscht werden kann. Auch wenn man die Datei von den Rechten auf dem Elternverzeichnis her löschen/ändern dürfte, ist das nicht erlaubt. Es ist also dann absolut unmöglich, dass irgendein Prozess diese Datei ändern kann. allerdings kannst du sie auch erst dann wieder bearbeiten, wenn du als User root
Code:
chattr -i /pfad/zur/datei
machst
Allerdings weiss ich ned wie der DSM auf das immutable Bit reagieren wird. Vielleicht schreibt der ja das Template File k.A. was passiert wenn der plötzlich nicht schreiben darf

Ein Downgrade geht grundsätzlich, aber ich weiss nicht ob man beliebig weit zurück kann. Vielleicht gibt es Versionen vor die man nicht mehr kommt.
 

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hi,

ich hab die main.template per cp main.template main_orig.template gesichert. Dann kopiere ich die main.cf nach main.template.

Das ist aber alles nicht das Problem. Beim Startup des Syno wird aus der main.template eine neue main.cf generiert. Das zugehörige script habe ich bisher jedoch nicht gefunden.
In der Datei /var/packages/MailServer/?????/PKG_DEF (ich hab gerade den genauen Pfad und Namen nicht zur Hand) stehen eine Reihe von Parametern für die generierung der main.cf des Mailservers. Ich hab dort alle smtp_* Parameter raus geworfen. Damit habe ich nach dem reboot endlich keine verhunzte main.cf mehr udn es steht nur noch das drinn was ich haben will.

Wie im anderen Post geschrieben war und ist nun noch das Problem, das die sasl_passwd.db jedesmal beim reboot platt gemacht wird.

Ich hab mir damit beholfen das ich die beiden (sasl_passwd.db und sender_relay.db) in ein user Verzeichniss gelegt hab und in der main.templat die Pfade dort hin angepaßt wurden. So läuft der Mailserver aktuell wieder aber mit dem faden Beigeschmack das ich ihn eigentlich immer austricksen muss.

Der Zustand wird wohl so lange anhalten bis mir jemand sagen kann was beim startup des Syno alles passiert bezüglich der Konfiguration des Mailservers.

Letztes Problem das ich noch habe ist das der Androide plötzlich keine Mails mehr verschicken darf wenn ich im Heimnetz bin.

Grüße

Richard
 

richy

Benutzer
Mitglied seit
24. Jul 2011
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hi,

hier mal die /root/.profile
Da hab ich außer dem im Wiki empfohlenen auskommentieren der Path Variablen nix gemacht.

Rich (BBCode):
umask 022

#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#export PATH

#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then
#        stty erase
#fi

HOME=/root
export HOME

TERM=${TERM:-cons25}
export TERM

PAGER=more
export PAGER

PS1="`hostname`> "

alias dir="ls -al"
alias ll="ls -la"


Hier der relevante Ausschnitt aus main.template

Rich (BBCode):
# my own definitions for main.cf

inet_protocols = ipv4, ipv6
mailbox_size_limit = 0
broken_sasl_auth_clients = yes
cyrus_sasl_config_path = /var/packages/MailServer/target/etc
smtpd_sasl_authenticated_header = yes
smtpd_tls_cert_file = /usr/syno/etc/ssl/ssl.crt/server.crt
smtpd_tls_key_file = /usr/syno/etc/ssl/ssl.key/server.key

smtp_sender_dependent_authentication = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/volume1/homes/richy/Mail_DB/sasl_passwd
sender_dependent_relayhost_maps = hash:/volume1/homes/richy/Mail_DB/sender_relay
smtp_use_tls = yes
smtp_tls_enforce_peername = no
smtp_sasl_security_options = noanonymous
myhostname = localhost
message_size_limit = 52428800

und das steht nach dem Startup des Syno in der main.cf.

Rich (BBCode):
# my own definitions for main.cf

inet_protocols = ipv4, ipv6
mailbox_size_limit = 0
broken_sasl_auth_clients = yes
cyrus_sasl_config_path = /var/packages/MailServer/target/etc
smtpd_sasl_authenticated_header = yes
smtpd_tls_cert_file = /usr/syno/etc/ssl/ssl.crt/server.crt
smtpd_tls_key_file = /usr/syno/etc/ssl/ssl.key/server.key

smtp_sender_dependent_authentication = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/volume1/homes/richy/Mail_DB/sasl_passwd
sender_dependent_relayhost_maps = hash:/volume1/homes/richy/Mail_DB/sender_relay
smtp_use_tls = yes
smtp_tls_enforce_peername = no
smtp_sasl_security_options = noanonymous
myhostname = localhost
message_size_limit = 52428800
alias_maps = hash:/var/packages/MailServer/target/etc/aliases
myhostname = localhost
smtpd_sasl_auth_enable = no
mydestination = $myhostname, localhost.$mydomain, localhost
message_size_limit = 52428800
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Wo verdammt nochmal holt der den Krempel her ?

Teile davon kommen hier her. Da hab ich schon einiges raus geworfen. War aber wie man sieht auch nicht 100% Zielführend. Deshalöb wäre es schon gut zu wissen welches Script beim Start die main.cf erzeugt.

etc -> /usr/syno/etc/packages/MailServer/mailserver.conf

Rich (BBCode):
smtp_enabled="yes"
smtp_hostname="localhost"
message_limit="50"
canonical_domain=""
spam_enable="yes"
spam_greylist_enable="no"
spam_dnsbl_enable="no"
pop3_enabled="yes"
pop3s_enabled="yes"
imap_enabled="yes"
imaps_enabled="yes"
smtp_ignore_lan_auth="no"
account_type="local"
smtp_ssl_enabled="no"
acc_domain_name=""
win_domain_short_name=""
restrict_sender="no"




Grüße

Richard
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
öffne mal deine .profile mit dem vi Editor. Hast du dort am Ende der Zeilen jeweils ein ^M ? Weil sonst schaut die profile imho eigentlich gut aus
Wegen der Konfig: du machst ja bestimmte Konfigs im DSM, die werden sicher auch reingeschrieben. Deine Template alleine würde postfix kaum starten. Nur schon weil keine smtp_*_restrictions drin sind. Wenn der postfix starten würde wäre er nur mit der template Konfig alleine ein offenes Relay!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat