4 Commits
v1.2.0 ... v1

Author SHA1 Message Date
f16ced8d0e LICENSE: correct holder 2020-03-05 23:26:16 +01:00
b4d21e7654 README: mention content_type 2019-12-17 23:49:39 +01:00
8fee2012a2 new content_type input
allow to set Content-Type HTTP header to a desired value
2019-12-17 23:45:26 +01:00
df3751004c workflow: send mail to pusher too 2019-12-17 23:44:47 +01:00
5 changed files with 14 additions and 7 deletions

View File

@ -25,5 +25,5 @@ jobs:
password: ${{secrets.PASSWORD}}
subject: ${{github.repository}}
body: ${{matrix.body}}
to: ${{secrets.USERNAME}}
to: ${{github.event.pusher.email}},${{secrets.USERNAME}}
from: github-actions

View File

@ -1,7 +1,6 @@
The MIT License (MIT)
Copyright (c) 2018 GitHub, Inc. and contributors
Copyright (c) 2020 Dawid Dziurla
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -19,4 +19,6 @@ An action that simply sends a mail to multiple recipients.
body: file://README.md
to: obiwan@tatooine.com,yoda@dagobah.com
from: Luke Skywalker
# Optional content type:
content_type: text/html
```

View File

@ -29,6 +29,10 @@ inputs:
from:
description: Full name of mail sender
required: true
content_type:
description: Content-Type HTTP header (MIME type)
required: false
default: text/plain
runs:
using: docker
image: Dockerfile

10
main.rb
View File

@ -4,14 +4,15 @@
require 'net/smtp'
# Inputs
address = ENV['INPUT_SERVER_ADDRESS']
port = ENV['INPUT_SERVER_PORT']
server_address = ENV['INPUT_SERVER_ADDRESS']
server_port = ENV['INPUT_SERVER_PORT']
username = ENV['INPUT_USERNAME']
password = ENV['INPUT_PASSWORD']
subject = ENV['INPUT_SUBJECT']
body = ENV['INPUT_BODY']
to = ENV['INPUT_TO']
from = ENV['INPUT_FROM']
content_type = ENV['INPUT_CONTENT_TYPE'] || 'text/plain'
# Body
prefix = 'file://'
@ -24,6 +25,7 @@ body = if body.start_with?(prefix)
# Message
message = <<~END_OF_MESSAGE
Content-Type: #{content_type}; charset=utf-8
Subject: #{subject}
From: #{from} <#{username}>
@ -32,9 +34,9 @@ END_OF_MESSAGE
# Send
begin
smtp = Net::SMTP.new(address, port.to_i)
smtp = Net::SMTP.new(server_address, server_port.to_i)
smtp.enable_tls
smtp.start(address, username, password, :login)
smtp.start(server_address, username, password, :login)
smtp.send_message(message, username, to.split(','))
rescue StandardError => e
puts "Error: #{e.message}"