Jelajahi Sumber

added smtp support

DigitalLumberjack 9 tahun lalu
induk
melakukan
69488bb4c4
3 mengubah file dengan 30 tambahan dan 0 penghapusan
  1. 5 0
      Dockerfile
  2. 5 0
      README.md
  3. 20 0
      start.sh

+ 5 - 0
Dockerfile

@@ -4,6 +4,11 @@ ENV MYSQL_USER xwiki
 ENV MYSQL_PASSWORD dbpass
 ENV MYSQL_HOST db
 ENV WIKI_CONTEXT xwiki
+ENV ADMIN_EMAIL xwiki@host.com
+ENV SMTP_HOST mail.host.com
+ENV SMTP_PROTOCOL tls
+ENV SMTP_LOGIN xwiki
+ENV SMTP_PASSWORD xwiki
 
 RUN curl http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-8.0-milestone-2.war --output ${JETTY_BASE}/xwiki8.war
 RUN curl http://download.forge.ow2.org/xwiki/xwiki-enterprise-ui-mainwiki-all-8.0-milestone-2.xar --output ${JETTY_BASE}/xwiki8.xar

+ 5 - 0
README.md

@@ -7,3 +7,8 @@ Use the following ENV when running :
 - MYSQL_PASSWORD : the mysql password
 - MYSQL_HOST : the hostname of the linked database container
 - WIKI_CONTEXT : the context of the website (ROOT for no context)
+- ADMIN_EMAIL : the email of the administrator
+- SMTP_HOST : smtp host to send email from
+- SMTP_PROTOCOL : smtp protocol (tls, ssl, unsecure)
+- SMTP_LOGIN : the smtp login (empty if no login needed)
+- SMTP_PASSWORD : the smtp password (empty if no login needed)

+ 20 - 0
start.sh

@@ -7,6 +7,26 @@ if [ "$WIKI_CONTEXT" != "" ];then
     sed -i "s|MYSQL_HOST|${MYSQL_HOST}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
     sed -i "s|MYSQL_USER|${MYSQL_USER}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
     sed -i "s|MYSQL_PASSWORD|${MYSQL_PASSWORD}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/hibernate.cfg.xml
+    if [[ "${SMTP_HOST}" != "" ]]; then
+      sed -i "s|.*mail\.sender\.host = .*|mail.sender.host = ${SMTP_HOST}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties 
+    fi
+    if [[ "${SMTP_LOGIN}" != "" ]]; then
+      sed -i "s|.*mail\.sender\.username = .*|mail.sender.username = ${SMTP_LOGIN}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+    fi
+    if [[ "${SMTP_PASSWORD}" != "" ]]; then
+      sed -i "s|.*mail\.sender\.password = .*|mail.sender.password = ${SMTP_PASSWORD}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+    fi
+    if [[ "${ADMIN_EMAIL}" != "" ]]; then
+      sed -i "s|.*mail\.sender\.from = .*|mail.sender.from = ${ADMIN_EMAIL}|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+    fi
+    if [[ "${SMTP_PROTOCOL}" == "tls" ]]; then
+      sed -i "s|.*mail\.sender\.port = .*|mail.sender.port = 587|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+      sed -i "s|.*mail\.sender\.properties = .*|mail.sender.properties = mail.smtp.starttls.enable = true|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+    elif [[ "${SMTP_PROTOCOL}" == "ssl" ]]; then
+      sed -i "s|.*mail\.sender\.port = .*|mail.sender.port = 465|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+    else
+      sed -i "s|.*mail\.sender\.port = .*|mail.sender.port = 25|" ${JETTY_BASE}/webapps/${WIKI_CONTEXT}/WEB-INF/xwiki.properties
+    fi
   fi
 fi