مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
31 أسطر
736 B
Ruby
31 أسطر
736 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ReceivedHeader
|
|
|
|
OUR_HOSTNAMES = {
|
|
smtp: Postal::Config.postal.smtp_hostname,
|
|
http: Postal::Config.postal.web_hostname
|
|
}.freeze
|
|
|
|
class << self
|
|
|
|
def generate(server, helo, ip_address, method)
|
|
our_hostname = OUR_HOSTNAMES[method]
|
|
if our_hostname.nil?
|
|
raise Error, "`method` is invalid (must be one of #{OUR_HOSTNAMES.join(', ')})"
|
|
end
|
|
|
|
header = "by #{our_hostname} with #{method.to_s.upcase}; #{Time.now.utc.rfc2822}"
|
|
|
|
if server.nil? || server.privacy_mode == false
|
|
hostname = DNSResolver.local.ip_to_hostname(ip_address)
|
|
header = "from #{helo} (#{hostname} [#{ip_address}]) #{header}"
|
|
end
|
|
|
|
header
|
|
end
|
|
|
|
end
|
|
|
|
end
|