12 Commits

4 changed files with 18 additions and 9 deletions

View File

@ -6,6 +6,7 @@ jobs:
main:
runs-on: ubuntu-latest
strategy:
max-parallel: 1
matrix:
content_type:
- text/plain
@ -23,7 +24,7 @@ jobs:
</body>
</html>
steps:
- name: Checkout
- name: Checkout code
uses: actions/checkout@v1
- name: Send mail
uses: ./
@ -34,6 +35,6 @@ jobs:
password: ${{secrets.PASSWORD}}
subject: ${{github.repository}}
body: ${{matrix.body}}
to: ${{github.event.pusher.email}},${{secrets.USERNAME}}
to: ${{github.event.pusher.email}}
from: github-actions
content_type: ${{matrix.content_type}}
content_type: ${{matrix.content_type}}

View File

@ -18,7 +18,7 @@ An action that simply sends a mail to multiple recipients.
# Read file contents as body:
body: file://README.md
to: obiwan@tatooine.com,yoda@dagobah.com
from: Luke Skywalker
from: Luke Skywalker # <user@example.com>
# Optional content type (defaults to text/plain):
content_type: text/html
```

View File

@ -1,5 +1,5 @@
name: Send email
description: Send mail to multiple recipients
description: Send an email to multiple recipients
author: dawidd6
branding:
icon: mail
@ -21,13 +21,13 @@ inputs:
description: Subject of mail message
required: true
body:
description: Body of mail message (might be a filename to read from)
description: Body of mail message (might be a filename prefixed with file:// to read from)
required: true
to:
description: Recipients mail addresses (separated with comma)
required: true
from:
description: Full name of mail sender
description: Full name of mail sender (might be with an email address specified in <>)
required: true
content_type:
description: Content-Type HTTP header (text/html or text/plain)

12
main.js
View File

@ -11,6 +11,14 @@ function get_body(body) {
return body
}
function get_from(from, username) {
if (from.match(/.+<.+@.+>/)) {
return from
}
return `"${from}" <${username}>`
}
async function main() {
try {
const server_address = core.getInput("server_address", { required: true })
@ -34,7 +42,7 @@ async function main() {
})
const info = await transport.sendMail({
from: `"${from}" <${username}>`,
from: get_from(from, username),
to: to,
subject: subject,
text: content_type != "text/html" ? get_body(body) : undefined,
@ -47,4 +55,4 @@ async function main() {
}
}
main()
main()