new content_type input

allow to set Content-Type HTTP header to a desired value
This commit is contained in:
Dawid Dziurla 2019-12-17 23:45:26 +01:00
parent df3751004c
commit 8fee2012a2
No known key found for this signature in database
GPG Key ID: 7B6D8368172E9B0B
2 changed files with 10 additions and 4 deletions

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}"