diff --git a/docker-compose.yml b/docker-compose.yml
index 8c3a6f10451da42e564e0d3f580d8c5c0fe45284..92bb22a5e45f147458f2ebd5c294fae67d4d5360 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -34,6 +34,12 @@ services:
           LC_ALL: ${LOCALE}
           LC_C_TYPE: ${LOCALE}
           TZ: ${TZ}
+          MAIL_SMTP_HOST: ${MAIL_SMTP_HOST}
+          MAIL_SMTP_PORT: ${MAIL_SMTP_PORT}
+          MAIL_SENDMODE: ${MAIL_SENDMODE}
+          MAIL_SMTP_USER: ${MAIL_SMTP_USER}
+          MAIL_SMTP_PASSWORD: ${MAIL_SMTP_PASSWORD}
+          MAIL_MAIN_FROM: ${MAIL_MAIN_FROM}
       restart: ${RESTART}
       links:
           - mariadb
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 1f9eabd4c0d9db714a97a1cfa030eda6d88cf5a7..c726e7d271f9633c7478562ee7cafb885fa247d6 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -67,5 +67,6 @@ RUN sed -i "s/^# *\($LOCALE\)/\1/" /etc/locale.gen && locale-gen
 
 WORKDIR /var/www/
 RUN mkdir /var/www/custom
+COPY setupmail.php /
 COPY entrypoint.sh /
 ENTRYPOINT ["/entrypoint.sh"]
diff --git a/docker/setupmail.php b/docker/setupmail.php
new file mode 100644
index 0000000000000000000000000000000000000000..9ec5ea694fa0305a685be9403707d21b4ec07fc8
--- /dev/null
+++ b/docker/setupmail.php
@@ -0,0 +1,41 @@
+<?php
+define("NOSESSION", 1);
+
+include "/var/www/dolibarr/htdocs/master.inc.php";						// dolibarr
+include_once DOL_DOCUMENT_ROOT . "/core/lib/admin.lib.php";				// dolibarr_set_const
+include_once DOL_DOCUMENT_ROOT . "/core/lib/functions.lib.php";			// For sanitizeVal
+
+$errors = [];
+$setup_vars = [
+	"MAIL_SMTP_HOST" => sanitizeVal(getenv("MAIL_SMTP_HOST"), 'alphanohtml'),					// MAIN_MAIL_SMTP_SERVER -> IP or HOST
+	"MAIL_SMTP_PORT" => sanitizeVal(getenv("MAIL_SMTP_PORT"), 'int'),							// MAIN_MAIL_SMTP_PORT -> 465
+	"MAIL_SENDMODE" => sanitizeVal(getenv("MAIL_SENDMODE"), 'aZ09'),							// MAIN_MAIL_SENDMODE -> stmps
+	"MAIL_SMTPS_USER" => sanitizeVal(getenv("MAIL_SMTP_USER"), 'alphanohtml'),					// MAIN_MAIL_SMTPS_ID -> robot@domain.com
+	"MAIL_SMTPS_PASSWORD" => sanitizeVal(getenv("MAIL_SMTP_PASSWORD"), 'none'),					// MAIN_MAIL_SMTPS_PW -> pw
+	"MAIL_MAIN_FROM" => sanitizeVal(getenv("MAIL_MAIN_FROM"), 'alphanohtml'),					// MAIN_MAIL_EMAIL_FROM -> no-reply@domain.com
+];
+
+foreach ($setup_vars as $key => $val){
+	if ($val) continue;
+	$errors[] = "Missing value for '{$key}' !";
+}
+
+if (!empty($errors)){
+	$errcount = count($errors);
+	print("[MAIL]: {$errcount} configuration errors:");
+	foreach ($errors as $errs){
+		print("\t>" . $errors . "\n");
+	}
+	
+} 
+
+else {
+	dolibarr_set_const($db, "MAIN_MAIL_SENDMODE", $setup_vars['MAIL_SENDMODE'], 'chaine', 0, '', $conf->entity);
+	dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", $setup_vars['MAIL_SMTP_PORT'], 'chaine', 0, '', $conf->entity);
+	dolibarr_set_const($db, "MAIN_MAIL_SMTP_SERVER", $setup_vars['MAIL_SMTP_HOST'], 'chaine', 0, '', $conf->entity);
+	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_ID", $setup_vars['MAIL_SMTPS_USER'], 'chaine', 0, '', $conf->entity);
+	dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", $setup_vars['MAIL_SMTPS_PASSWORD'], 'chaine', 0, '', $conf->entity);			// will encrypt the password because the key ends with'PW'
+	dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM", $setup_vars['MAIL_MAIN_FROM'], 'chaine', 0, '', $conf->entity);
+}
+
+