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}} password: ${{secrets.PASSWORD}}
subject: ${{github.repository}} subject: ${{github.repository}}
body: ${{matrix.body}} body: ${{matrix.body}}
to: ${{secrets.USERNAME}} to: ${{github.event.pusher.email}},${{secrets.USERNAME}}
from: github-actions from: github-actions

View File

@ -1,7 +1,6 @@
The MIT License (MIT) 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 Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal 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 body: file://README.md
to: obiwan@tatooine.com,yoda@dagobah.com to: obiwan@tatooine.com,yoda@dagobah.com
from: Luke Skywalker from: Luke Skywalker
# Optional content type:
content_type: text/html
``` ```

View File

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

10
main.rb
View File

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