diff --git a/.woodpecker/build-dev.yml b/.woodpecker/build-dev.yml
index 0386310..7b140b5 100644
--- a/.woodpecker/build-dev.yml
+++ b/.woodpecker/build-dev.yml
@@ -1,5 +1,8 @@
when:
branch: dev
+ event: [push, manual]
+ path:
+ include: [ '.woodpecker/build-dev.yaml', 'build/*', 'Dockerfile' ]
pipeline:
build_and_publish:
@@ -11,7 +14,3 @@ pipeline:
context: ./build
repo: vistanarvas/${CI_REPO_NAME}
tag: dev
- when:
- path:
- include: [ '.woodpecker/build-dev.yaml', 'build/*', 'Dockerfile' ]
- event: [push, manual]
diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml
index 91a2908..39dbae4 100644
--- a/.woodpecker/build.yml
+++ b/.woodpecker/build.yml
@@ -1,5 +1,9 @@
when:
branch: master
+ event: [push, tag, deployment, cron, manual]
+ cron: nightly
+ path:
+ include: [ '.woodpecker/build.yml', 'build/*', 'Dockerfile' ]
pipeline:
check_base:
@@ -23,8 +27,3 @@ pipeline:
context: ./build
repo: vistanarvas/${CI_REPO_NAME}
auto_tag: true
- when:
- path:
- include: [ '.woodpecker/build.yml', 'build/*', 'Dockerfile' ]
- cron: nightly
- event: [push, tag, deployment, cron, manual]
diff --git a/README.md b/README.md
index c87b1b0..f18b68a 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,66 @@
# msmtp
+[](https://woodpecker.narvas.tech/vista/msmtp)
-send mail from your container
\ No newline at end of file
+send mail from your container
+this image is intended to be used in a CI piple
+
+
+## Environment variables
+
+| Variable Name | Requered | Description | Example
+|--------------------|-----|------------------|--------
+|`SMTP_HOST` | Yes | The smtp url of your email server | `smtp.gmail.com`
+|`SMTP_PORT` | no | The smtp port usually `25`, `465` or `587` *this is the default* | `587`
+|`SMTP_FROM` | Yes | Your email address | `my_email@gmail.com`
+|`SMTP_USER` | Yes | Your username for the server
usually the same as your email addres or the part before the @ | `my_email`
+|`SMTP_PASSWORD` | Yes | its where the password go's
*the password gets stored in plaintext on the container* | `Hunter22`
+|`EMAIL` | No | The "raw" email | Example [here](#the-second-way)
+|`TO_ADDRESSES` | Yes | The adress or addresses to send to
to send to multiple addresses add `, ` (comma and space) betean each address | `alice@outlook.com, bob@gamil.com`
+|`SUBJECT` | No | The email subject | `text`
+|`MESSAGE` | No | The body off the email | `lots of text`
+|`SMTP_AUTH` | No | enable/disable authentication
Valid values are `off` or `on` *this is the default* | `on`
+|`SMTP_TLS` | No | enable/disable TLS encryption
Valid values are `off` or `on` *this is the default* | `on`
+
+### Environment variables files
+it is also posable subsitute the variables [above](#environment-variables) with a file
+to use this simpy take what you normaly use for the variable and put it in a file
+and make the contents of the `_FILE` variable the path to that file
+using this way other proccesses could provide the email content
+all of these are optinal but when uses the overwrite the counterpart variable
+| Variable Name | Description |
+|--------------------|-------------|
+|`MSMTP_CONFIG_FILE` | This is the config file msmtp uses
this replaces the need for most other Environment variables
When you use this only `EMAIL` or `TO_ADDRESSES`, `SUBJECT`, `MESSAGE` are requered
to see what the file sould contain have a look at the [Documentation](https://marlam.de/msmtp/msmtp.html#Configuration-files) or a [Example](https://marlam.de/msmtp/msmtprc.txt)
the file **MUST** have [permissions](https://linuxcommand.org/lc3_lts0090.php) set to 600
+|`SMTP_HOST_FILE` |
+|`SMTP_PORT_FILE` |
+|`SMTP_FROM_FILE` |
+|`SMTP_USER_FILE` |
+|`SMTP_PASSWORD_FILE`|
+|`EMAIL_FILE` |
+
+## Writing the email
+
+There a 2 ways to write the actual email
+### the first way
+provide the `TO_ADDRESSES` and `SUBJECT` and `MESSAGE` environment variables
+this is a very basic and simple way to write the email
+
+### the second way
+provide the `EMAIL` environment variable
+this is a more advanced way to write the email
+using the `EMAIL` overwrites the `TO_ADDRESSES` and `SUBJECT` and `MESSAGE` environment variables
+a basic `EMAIL` is formated like below
+```
+To: recipient@gmail.com
+Subject: The subject (followd by a empty line)
+
+This is the first like of the body
+```
+
+## Defaults for popular mail servers
+if its not on the list figger it out yourself *and make a pull request*
+tip: search for your servers imap clent settings usually it also lists smtp settings
+| Name | `SMTP_HOST` | `SMTP_PORT` |
+|---------|-------------------------|-------------|
+| Gmail | `smtp.gmail.com` | `587` |
+| Outlook | `smtp-mail.outlook.com` | `587` |
+| Yahoo | `smtp.mail.yahoo.com` | `587` |
diff --git a/build/start-container.sh b/build/start-container.sh
index 81c6271..3877c2c 100644
--- a/build/start-container.sh
+++ b/build/start-container.sh
@@ -1,15 +1,50 @@
#! /usr/bin/env sh
-echo "defaults
-auth on
-tls on
+if [ -n "${SMTP_HOST_FILE}" ]; then
+ SMTP_HOST=$cat ${SMTP_HOST_FILE});
+fi
-account default
-host ${SMTP_HOST}
-port ${SMTP_PORT}
-tls_starttls ${SMTP_STARTTLS}
-from ${SMTP_FROM}
-user ${SMTP_USER}
-password ${SMTP_PASSWORD}" > ~/.msmtprc
+if [ -n "${SMTP_PORT_FILE}" ]; then
+ SMTP_PORT=$(cat ${SMTP_PORT_FILE});
+fi
-echo -e "Subject: ${SUBJECT}\n\n${MESSAGE}" | msmtp ${TO_ADDRESS}
\ No newline at end of file
+if [ -n "${SMTP_FROM_FILE}" ]; then
+ SMTP_FROM=$(cat ${SMTP_FROM_FILE});
+fi
+
+if [ -n "${SMTP_USER_FILE}" ]; then
+ SMTP_USER=$(cat ${SMTP_USER_FILE});
+fi
+
+if [ -n "${SMTP_PASSWORD_FILE}" ]; then
+ SMTP_PASSWORD=$(cat ${SMTP_PASSWORD_FILE});
+fi
+
+IFS=
+
+if [ -n "${EMAIL_FILE}" ]; then
+ EMAIL=$(cat ${EMAIL_FILE});
+else
+ if [ -z "${EMAIL}" ]; then
+ EMAIL="To: ${TO_ADDRESSES}\nSubject: ${SUBJECT}\n\n${MESSAGE}";
+ fi
+fi
+
+if [ -z "${MSMTP_CONFIG_FILE}" ]; then
+ MSMTP_CONFIG_FILE=~/.msmtprc
+ touch ${MSMTP_CONFIG_FILE}
+ chmod 600 ${MSMTP_CONFIG_FILE}
+ echo "defaults
+ auth ${SMTP_AUTH:-on}
+ tls ${SMTP_TLS:-on}
+
+ account default
+ host ${SMTP_HOST}
+ port ${SMTP_PORT:-587}
+ tls_starttls ${SMTP_STARTTLS:-on}
+ from ${SMTP_FROM}
+ user ${SMTP_USER}
+ password ${SMTP_PASSWORD}" > ${MSMTP_CONFIG_FILE}
+fi
+
+echo -e "${EMAIL}" | msmtp --read-recipients -C ${MSMTP_CONFIG_FILE}
\ No newline at end of file