aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-11-05 14:18:03 -0500
committerGeorge Claghorn <george@basecamp.com>2018-11-05 14:19:42 -0500
commitac7fd0e56886eb134554789e014d2736b95d7042 (patch)
tree137798359f09d5cbafde1733d1ee6e20c9b85f82 /lib
parent6608bf60aad4d13df3b22e66326c1adbf9a51f3d (diff)
downloadrails-ac7fd0e56886eb134554789e014d2736b95d7042.tar.gz
rails-ac7fd0e56886eb134554789e014d2736b95d7042.tar.bz2
rails-ac7fd0e56886eb134554789e014d2736b95d7042.zip
Always emit enhanced SMTP status codes
Diffstat (limited to 'lib')
-rw-r--r--lib/tasks/ingress.rake23
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/tasks/ingress.rake b/lib/tasks/ingress.rake
index 5a944a113d..510951aa2a 100644
--- a/lib/tasks/ingress.rake
+++ b/lib/tasks/ingress.rake
@@ -9,31 +9,32 @@ namespace :action_mailbox do
require "http"
unless url = ENV["URL"].presence
- abort "URL is required"
+ abort "5.3.5 URL is required"
end
unless password = ENV["INGRESS_PASSWORD"].presence
- abort "INGRESS_PASSWORD is required"
+ abort "5.3.5 INGRESS_PASSWORD is required"
end
begin
response = HTTP.basic_auth(user: "actionmailbox", pass: password)
.timeout(connect: 1, write: 10, read: 10)
- .post(url, headers: { "Content-Type" => "message/rfc822", "User-Agent" => "Postfix" }, body: STDIN)
+ .post(url, headers: { "Content-Type" => "message/rfc822", "User-Agent" => ENV.fetch("USER_AGENT", "Postfix") }, body: STDIN)
- if response.status.success?
+ case
+ when response.status.success?
puts "2.0.0 HTTP #{response.status}"
- exit 0
+ when response.status.unauthorized?
+ abort "4.7.0 HTTP #{response.status}"
+ when response.status.unsupported_media_type?
+ abort "5.6.1 HTTP #{response.status}"
else
- puts "4.6.0 HTTP #{response.status}"
- exit 1
+ abort "4.0.0 HTTP #{response.status}"
end
rescue HTTP::ConnectionError => error
- puts "4.4.2 Error connecting to the Postfix ingress: #{error.message}"
- exit 1
+ abort "4.4.2 Error connecting to the Postfix ingress: #{error.message}"
rescue HTTP::TimeoutError
- puts "4.4.7 Timed out piping to the Postfix ingress"
- exit 1
+ abort "4.4.7 Timed out piping to the Postfix ingress"
end
end
end