Aller au contenu

Messages recommandés

Bonjour,

J'essaye depuis quelques temps de paramétrer Postfix de MailStation pour envoyer des mails en SMTPS (SSL/TLS) avec Thunderbird.

Je dé-commente les lignes suivantes de master.cf :

#smtps 	inet  n   	-   	n   	-   	-   	smtpd

#  -o smtpd_tls_wrappermode=yes

Quand je relance MailStation la ligne smtps inet n - n - - smtpd disparait et lorsque j'essaye d'envoyer un message en SSL/TLS par le port 465 avec Thunderbird ça ne marche pas. Dans le log (/var/log/messages) voilà ce que postfix renvoie quand je le relance :
Aug 15 22:23:31 postfix/master[5788]: warning: /usr/syno/mailstation/etc/master.cf: logical line must not start with whitespace: " -o smtpd_tls_wrappermode=yes"

La "ligne logique" devrait être smtps inet n - n - - smtpd et -o smtpd_tls_wrappermode=yes la suite de cette ligne d'après la syntaxe de master.cf. Le pire c'est que j'ai déjà réussi à activer le SMTPS il y a quelques temps mais je n'ai pas le souvenir d'avoir eu des problèmes avec la ligne qui disparait. Pour le moment j'arrive à utiliser le SMTP en STARTTLS avec Thunderbird par le port 587 en dé-commentant les lignes suivantes (toujours dans master.cf) :
#submission inet n   	-   	n   	-   	-   	smtpd

#  -o smtpd_tls_security_level=encrypt

C'est déjà ça mais j'aimerais bien comprendre le pourquoi du comment.

Le problème ne peut pas venir d'un blocage de port, le syno est en DMZ au moment des tests.

J'ai déjà cherché partout et je tombe à cours d'idées, c'est pour ça que je me tourne vers vous.

Si je n'ai pas été assez clair dites-le-moi.

Merci d'avance.

Sam.

il faut faire attention à la syntaxe des lignes longues !

"A logical line starts with non-whitespace text. A line that starts with whitespace continues a logical line" (une ligne logique commence par un caractère autre qu'un espace, une ligne qui débute par un espace est la suite de la ligne précédente

donc pas d'espace devant smtps

un espace devant -o

tu peux aussi tout mettre sur la même ligne !

Lien vers le commentaire
Partager sur d’autres sites

il faut faire attention à la syntaxe des lignes longues !

"A logical line starts with non-whitespace text. A line that starts with whitespace continues a logical line" (une ligne logique commence par un caractère autre qu'un espace, une ligne qui débute par un espace est la suite de la ligne précédente

donc pas d'espace devant smtps

un espace devant -o

tu peux aussi tout mettre sur la même ligne !

Merci pour ta réponse.

C'est bien ce que je faisais, pas d'espace devant le smtps et un espace devant le -o.

Mais quand je relance MailStation la ligne logique "smtps ..." disparait donc la ligne suivante, avec un espace devant, se retrouve seule alors que normalement elle devrait continuer la ligne "smtps ...".

J'ai déjà essayé de tout mettre sur une même ligne et là c'est toute la ligne qui disparait "smtps ..." + "-o...".

Sam.

Lien vers le commentaire
Partager sur d’autres sites

Encore merci.

J'ai dé-commenté les lignes et ensuite j'ai fait un chmod 444 master.cf pour le mettre en -r--r--r--.

Je relance MailStation et surprise, master.cf se remet comme avant en -rw-r--r-- et la ligne a été supprimée à nouveau.

Pour relancer seulement postfix et pas tout le package MailStation je ne vois pas comment faire.

Quand MailStation est lancé un ps | grep postfix me donne :


9485 postfix	2208 S   pickup -l -t fifo -u

 9486 postfix	2248 S   qmgr -l -t fifo -u

Sam.

le démon est master. mais il faut lancer avec la commande postfix :

/usr/syno/mailstation/sbin/postfix stop

puis

/usr/syno/mailstation/sbin/postfix start

dans une console root

nota : vérifie que le smtps est activé dans l'interface web (ou dans le fichier /etc/synoinfo.conf), cherche ssl.

Lien vers le commentaire
Partager sur d’autres sites

le démon est master. mais il faut lancer avec la commande postfix :

/usr/syno/mailstation/sbin/postfix stop

puis

/usr/syno/mailstation/sbin/postfix start

dans une console root

nota : vérifie que le smtps est activé dans l'interface web (ou dans le fichier /etc/synoinfo.conf), cherche ssl.

Un énorme merci !

En fait il fallait faire un postfix reload comme indiqué dans master.cf (un postfix stop puis postfix start ferait la même chose je pense) et tout marche.

La ligne est prise en compte au relancement de Postfix et elle n'est plus supprimée.

Par contre si on relance MailStation elle est supprimée.

Il suffira de garder une copie de master.cf et de faire ce qu'il faut à chaque relancement de MailStation.

Encore merci.

J'aurais du chercher à arrêter et lancer postfix avant de poster sur le forum ...

Sam.

Lien vers le commentaire
Partager sur d’autres sites

dans /etc/synoinfo.conf, tu as ces lignes :

eventport="25"

eventusessl="no"

voir si en mettant yes dans eventusessl et 465 dans eventport ça laisse la ligne dans master.cf

En modifiant ces lignes que ce soit après un reboot ou après un relancement de MailStation la ligne de master.cf est supprimée.

Sam.

Lien vers le commentaire
Partager sur d’autres sites

En modifiant ces lignes que ce soit après un reboot ou après un relancement de MailStation la ligne de master.cf est supprimée.

Sam.

il faudrait regarder ce que fait le script syno de démarrage de postfix...

je vais chercher un peu...

dans le script de démarrage de mailstation, on trouve :

       SmtpAuth=`/bin/get_key_value /etc/synoinfo.conf smtpd_sasl_auth_enable`

        if [ "x$SmtpAuth" != "xyes" ]; then

                SmtpAuth="no"

        fi

vérifier que dans /etc/synoinfo.conf on a bien smtpd_sasl_auth_enable=yes

Lien vers le commentaire
Partager sur d’autres sites

il faudrait regarder ce que fait le script syno de démarrage de postfix...

je vais chercher un peu...

dans le script de démarrage de mailstation, on trouve :

   	SmtpAuth=`/bin/get_key_value /etc/synoinfo.conf smtpd_sasl_auth_enable`

        if [ "x$SmtpAuth" != "xyes" ]; then

                SmtpAuth="no"

        fi

vérifier que dans /etc/synoinfo.conf on a bien smtpd_sasl_auth_enable=yes

J'avais pas vu que t'avais édité ton post.

"smtpd_sasl_auth_enable=" était déjà sur yes

Sam.

Lien vers le commentaire
Partager sur d’autres sites

rien trouvé d'autre (du moins dans ma version du firmware).

je pense qu'il faut regarder dans le script de démarrage de mailstation (il est dans /usr/local/etc/rc.d/) mais apparemment il ne touche pas à master.cf (du moins dans ma version du script)

peux-tu poster ton script ? ou alors tu regardes toi-même !

Voilà le script :

J'utilise le firmware 1161 sur mon 710+ avec la version 20100407-018 de MailStation.

#!/bin/sh


SASLAUTHD=/usr/syno/mailstation/sbin/saslauthd

POSTFIX=/usr/syno/mailstation/sbin/postfix

DOVECOT=/usr/syno/mailstation/sbin/dovecot

SPAMD=/usr/syno/mailstation/bin/spamd

PID_SPAMD=/var/run/spamd.pid

SPOOL_POSTFIX=/var/spool/postfix


MailStationEnabled="/var/packages/MailStation/enabled"

MailStationDir="/var/packages/MailStation/target"

WebmailDesktop="/usr/syno/synoman/webman/3rdparty/MailStation"

WebmailEnabled=`/bin/get_key_value /etc/synoinfo.conf webmail_enabled`

SpamfilterEnabled=`/bin/get_key_value /etc/synoinfo.conf spamfilter_enabled`

MailStationPostfix=${MailStationDir}/postfix


Protocols=""

RegenConf() {

	PostfixConf="/usr/syno/mailstation/etc/main.cf"

	PostfixMasterCf="/usr/syno/mailstation/etc/master.cf"

	DovecotConf="/usr/syno/mailstation/etc/dovecot.conf"

	WebmailConf="${MailStationDir}/roundcubemail/config/main.inc.php"


	MailStationHostname=`/bin/get_key_value /etc/synoinfo.conf mailstation_hostname`

	if [ "x$MailStationHostname" = "x" ]; then

		MailStationHostname="localhost"

	fi

	SmtpAuth=`/bin/get_key_value /etc/synoinfo.conf smtpd_sasl_auth_enable`

	if [ "x$SmtpAuth" != "xyes" ]; then

		SmtpAuth="no"

	fi

	MessageSizeLimit=`/bin/get_key_value /etc/synoinfo.conf message_size_limit`

	if [ -z "$MessageSizeLimit" ]; then

		MessageSizeLimit=10240000

	elif [ $MessageSizeLimit -eq 2048 ]; then

		MessageSizeLimit=2147483647

	else

		MessageSizeLimit=`/usr/bin/expr ${MessageSizeLimit} \* 1048576`

	fi


	/bin/grep -Ev "^myhostname|^smtpd_sasl_auth_enable|^message_size_limit" ${PostfixConf} > /tmp/tempinfo

	echo "myhostname = ${MailStationHostname}" >> /tmp/tempinfo

	echo "smtpd_sasl_auth_enable = ${SmtpAuth}" >> /tmp/tempinfo

	echo "message_size_limit = ${MessageSizeLimit}" >> /tmp/tempinfo

	/bin/mv /tmp/tempinfo ${PostfixConf}


	/bin/grep -Ev "^smtp.*inet.*smtpd|^spamassassin" ${PostfixMasterCf} > ${PostfixMasterCf}.$

	if [ "x${SpamfilterEnabled}" = "xyes" ]; then

		echo "smtp inet n - n - - smtpd -o content_filter=spamassassin" >> ${PostfixMasterCf}.$

		echo "spamassassin unix - n n - - pipe user=spamfilter argv=/usr/syno/mailstation/bin/filter.sh -oi -f \${sender} \${recipient}" >> ${PostfixMasterCf}.$

	else

		echo "smtp inet n - n - - smtpd" >> ${PostfixMasterCf}.$

	fi

	mv ${PostfixMasterCf}.$ ${PostfixMasterCf}


	for key in imap imaps pop3 pop3s; do

		Enabled=`/bin/get_key_value /etc/synoinfo.conf ${key}_enabled`

		if [ "x$Enabled" = "xyes" ]; then

			Protocols="${Protocols} ${key}"

		fi

	done

	if [ "x$Protocols" != "x" ]; then

		sed "/^protocols/c\\protocols =${Protocols}" ${DovecotConf} > /tmp/tempinfo

		/bin/mv /tmp/tempinfo ${DovecotConf}

	fi


	WebmailSMTP=`/bin/get_key_value /etc/synoinfo.conf webmail_smtp_server`

	if [ -z "$WebmailSMTP" ]; then

		SMTP_SERVER="localhost"

		SMTP_PORT="25"

	else

		SMTP_SERVER=`echo ${WebmailSMTP} | cut -d':' -f1`

		SMTP_PORT=`echo ${WebmailSMTP} | cut -d':' -f2`

		if [ "${SMTP_PORT}" = "${WebmailSMTP}" ]; then

			SMTP_PORT="25"

		fi

	fi

	sed "/^\$rcmail_config\['mail_domain'\]/c\\\$rcmail_config['mail_domain'] = '${MailStationHostname}';" ${WebmailConf} > /tmp/tempinfo

	sed "/^\$rcmail_config\['smtp_server'\]/c\\\$rcmail_config['smtp_server'] = '${SMTP_SERVER}';" /tmp/tempinfo > /tmp/tempinfo.$

	sed "/^\$rcmail_config\['smtp_port'\]/c\\\$rcmail_config['smtp_port'] = ${SMTP_PORT};" /tmp/tempinfo.$ > /tmp/tempinfo

	/bin/mv /tmp/tempinfo ${WebmailConf}

}


CheckEnv() {

	if [ -d ${SPOOL_POSTFIX} -a ! -L ${SPOOL_POSTFIX} ]; then

		if [ -d ${MailStationPostfix} ]; then

			# after upgrade patch

			rm -rf ${MailStationPostfix}/public ${MailStationPostfix}/private ${MailStationPostfix}/pid

			cp -a ${MailStationPostfix}/* ${SPOOL_POSTFIX}/

			rm -rf ${MailStationPostfix}

			mv ${SPOOL_POSTFIX} ${MailStationPostfix}

		fi

	fi

	if [ ! -d ${MailStationPostfix} ]; then

		rm -rf ${MailStationPostfix} 2>/dev/null

		cp -a /var.defaults/spool/postfix ${MailStationPostfix}

	fi

	rm -rf ${SPOOL_POSTFIX}

	ln -s ${MailStationPostfix} ${SPOOL_POSTFIX}

}


StartDaemons() {

	if [ ! -f "${MailStationEnabled}" ]; then

		exit 0

	fi

	CheckEnv

	RegenConf

	SmtpEnabled=`/bin/get_key_value /etc/synoinfo.conf smtp_enabled`

	if [ "x$SmtpEnabled" = "xyes" ]; then

		echo "Starting SASLAuthd..."

		$SASLAUTHD -a shadow


		echo "Starting Postfix..."

		$POSTFIX start

		if [ "x${SpamfilterEnabled}" = "xyes" ]; then

			${SPAMD} -d -r ${PID_SPAMD}

		fi

	fi

	if [ "x$Protocols" != "x" ]; then

		echo "Starting Dovecot..."

		$DOVECOT

	fi

	rm -f $WebmailDesktop

	if [ "x$WebmailEnabled" = "xyes" ]; then

		ln -sf ${MailStationDir}/desktop $WebmailDesktop

	fi

}


StopDaemons() {

	dovecot_base=`$DOVECOT -a|grep '^base_dir: '|sed 's/^base_dir: //'`

	dovecot_pid=$dovecot_base/master.pid

	saslauthd_pid=/var/run/saslauthd/saslauthd.pid

	if [ -f $saslauthd_pid ]; then

		echo "Stopping SASLAuthd..."

		kill `cat $saslauthd_pid`

	fi

	echo "Stopping Postfix..."

	$POSTFIX stop

	kill `cat ${PID_SPAMD}`


	if [ -f $dovecot_pid ]; then

		echo "Stopping Dovecot..."

		kill `cat $dovecot_pid`

	fi

	rm -f $WebmailDesktop

}


case "$1" in

	start)

		StartDaemons

		if [ -n "$SYNOPKG_PKGNAME" -a "x$WebmailEnabled" = "xyes" ]; then

			/usr/syno/etc/rc.d/S97apache-user.sh restart > /dev/null 2>&1

		fi

		;;

	stop)

		StopDaemons

		if [ -n "$SYNOPKG_PKGNAME" -a "x$WebmailEnabled" = "xyes" ]; then

			/usr/syno/etc/rc.d/S97apache-user.sh restart > /dev/null 2>&1

		fi

		;;

	restart)

		StopDaemons

		sleep 1

		StartDaemons

		;;

	status)

		if [ -f "${MailStationEnabled}" ]; then

			exit 0

		fi

		exit 1

		;;

	*)

		echo "Usage: $0 {start|stop|restart|status}" >&2

		exit 1

		;;

esac


exit 0


Je jette aussi un coup d'œil. EDIT : la seule ligne qui contient master.cf est la ligne 19. PostfixMasterCf="/usr/syno/mailstation/etc/master.cf" Ensuite on retrouve PostfixMaster.Cf plusieurs fois dans le script.
/bin/grep -Ev "^smtp.*inet.*smtpd|^spamassassin" ${PostfixMasterCf} > ${PostfixMasterCf}.$

	if [ "x${SpamfilterEnabled}" = "xyes" ]; then

		echo "smtp inet n - n - - smtpd -o content_filter=spamassassin" >> ${PostfixMasterCf}.$

		echo "spamassassin unix - n n - - pipe user=spamfilter  argv=/usr/syno/mailstation/bin/filter.sh -oi -f \${sender}  \${recipient}" >> ${PostfixMasterCf}.$

	else

		echo "smtp inet n - n - - smtpd" >> ${PostfixMasterCf}.$

	fi

	mv ${PostfixMasterCf}.$ ${PostfixMasterCf}

Dans la ligne juste au-dessus mv renomme ${PostfixMasterCf}.$ en ${PostfixMasterCf} ou il écrase ${PostfixMasterCf} par ${PostfixMasterCf}.$ ?

Je vais chercher à quoi servent les $ et le point.

Si ici la fonction de mv est d'écraser ça pourrait venir de là non ?

Mais les paramètres de spamassassin devrait-être rentrés à la main.

Sam.

Lien vers le commentaire
Partager sur d’autres sites

c'est probablement là que ça se passe :

        /bin/grep -Ev "^smtp.*inet.*smtpd|^spamassassin" ${PostfixMasterCf} > ${PostfixMasterCf}.$

        if [ "x${SpamfilterEnabled}" = "xyes" ]; then

                echo "smtp inet n - n - - smtpd -o content_filter=spamassassin" >> ${PostfixMasterCf}.$

                echo "spamassassin unix - n n - - pipe user=spamfilter argv=/usr/syno/mailstation/bin/filter.sh -oi -f \${sender} \${recipient}" >> ${PostfixMasterCf}.$

        else

                echo "smtp inet n - n - - smtpd" >> ${PostfixMasterCf}.$

        fi

        mv ${PostfixMasterCf}.$ ${PostfixMasterCf}

il y a modification du fichier master.cf pour spamassassin. il suffit de modifier ainsi :
   	/bin/grep -Ev "^smtp .*inet.*smtpd|^spamassassin" ${PostfixMasterCf} > ${PostfixMasterCf}.$

        if [ "x${SpamfilterEnabled}" = "xyes" ]; then

                echo "smtp inet n - n - - smtpd -o content_filter=spamassassin" >> ${PostfixMasterCf}.$

                echo "spamassassin unix - n n - - pipe user=spamfilter argv=/usr/syno/mailstation/bin/filter.sh -oi -f \${sender} \${recipient}" >> ${PostfixMasterCf}.$

        else

                echo "smtp inet n - n - - smtpd" >> ${PostfixMasterCf}.$

        fi

        mv ${PostfixMasterCf}.$ ${PostfixMasterCf}

(ajout d'un espace après smtp dans la ligne grep, essayer éventuellement avec \s (^smtp\s.* le reste idem)

Que ce soit avec un espace ou avec \s la ligne de master.cf est toujours supprimée au relancement de MailStation.

Sam.

Lien vers le commentaire
Partager sur d’autres sites

Pas trop le temps de chercher plus et je n'ai pas la mm version que toi, mais c'est ma qu'im faut chercher.

C'est pas grave, tu m'as déjà bien aidé comme ça.

Il me suffit d'utiliser le petit script dont je me servais pour relancer correctement postfix après les tests et de le faire exécuter dans le script de démarrage de MailStation.

Voilà le script en question, c'est pas grand chose mais ça facilite la vie.

#!/bin/sh


rm -f /usr/syno/mailstation/etc/master.cf

cp /usr/syno/mailstation/etc/master.cf.d /usr/syno/mailstation/etc/master.cf

/usr/syno/mailstation/sbin/./postfix reload

Avec la ligne "smtps*" et tous ces arguments dé-commentée dans master.cf.d.

Le seul problème c'est qu'il faut faire toute la configuration dans master.cf.d, tout le reste est ecrasé.

Sinon je peux m'amuser à remplacer juste les lignes qu'il faut quand master.cf mais j'améliorerai le script au fur à mesure, quand j'apprendrai comment faire.

Merci pour tout.

Sam.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.