مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-11-30 21:32:30 +00:00
test: add test for dkim header generation
هذا الالتزام موجود في:
37
spec/examples/dkim_signing/email.msg
Normal file
37
spec/examples/dkim_signing/email.msg
Normal file
@@ -0,0 +1,37 @@
|
||||
domain: adamtest.viaduct.io
|
||||
time: 1626973299
|
||||
dkim_identifier: postal-hg3YOm
|
||||
private_key: |
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICWwIBAAKBgQDVebmUOjOp4WhVFdwXiHE0sIN0/pxG1lXka8b7wCcKXo7c0Bcp
|
||||
2t77AUP3Lr3HOdY1OKYU8UzbLR5dahvwoodEo2QgFB6wxP9FF/koip+YdmWSscZI
|
||||
9xMZBPcJYfMa3MtC2JC0aDHaKRTSlehg9/T77dJEL11pePdKJtyWZsxNlwIDAQAB
|
||||
AoGAYBdWzb4VG1b3W7VnSMCGFK2Pvs4NEmXQa+2HuDKaYDSIIiUZCCIZVOsQ6OcF
|
||||
TfRe074YJD0p107L6EinIv5F3HEp6pMT3gzo057mPabskohUXbDXcX3kq+0EDMYx
|
||||
1HmlyRvWb6CI79hZrJavF5vOPZxSnM123Y7L0wc1WEKPxSECQQDq3iH/JNPmwDBS
|
||||
DeY6KR6+q7hKGmvcfWfiPQh+PYaekE6635+au3qE8sp+xwiQDbsq9ywwj8J/8Lzt
|
||||
FnvSi+/DAkEA6K7Zw8OHZpq3QwEfazTSm2A+iciD88ISl4g+71Cu6AVnaip5KdxI
|
||||
yiEWE3z/3Y99NPyL1AGouohBCqHD3qOBnQJAWumRD0oaG//YtGpc67ZvCC9ALq77
|
||||
gWWpiJFHcFYwfcAuOXfGOAbJ7hxs9ZXlYp1uDbuPh1yeVRfCiaNiWqWAMQJAJnuc
|
||||
qoLxJugZvSw3XQy8dFQjo7gVEsCbQJKZDg2DD/6szuM9bM3w//Ue6JQ44RT1OUk3
|
||||
exXXKRqV30NH2M+kBQJAJmVIeroVONXhsw/O18dtM4zSbr4glPKBHz73MVO3WK5v
|
||||
ZM1TKedFNOujh8cEyYsoQRaIbGvTcnSMQfMYw7Inhw==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
headers: date:from:to:message-id:subject:mime-version:content-type:content-transfer-encoding
|
||||
bh: mvuu3b9qEfdaZCSaVxLvRSqKbMB5YN4qxRCRw5FtvuE=
|
||||
b: UZgYjsed5ngc9+U/80FMsHIWLTaxj/OBc5r1l9sKbOIz0rmdRnp+X/YCFq16/AY8PWsrJh+/FgIs/zR9hWn+F2iz7dSfvnTE70zKy1q+JIyNh5cw1HegnIgZqG5S6IdliiwaiCFlxMbya790z//jUh5pJdOcm2QuA+fDOGdfU3k=
|
||||
---
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adamtest.viaduct.io; s=postal-hg3YOm; t=1626973299; bh=mvuu3b9qEfdaZCSaVxLvRSqKbMB5YN4qxRCRw5FtvuE=; h=date:from:to:message-id:subject:mime-version:content-type:content-transfer-encoding; b=UZgYjsed5ngc9+U/80FMsHIWLTaxj/OBc5r1l9sKbOIz0rmdRnp+X/YCFq16/AY8PWsrJh+/FgIs/zR9hWn+F2iz7dSfvnTE70zKy1q+JIyNh5cw1HegnIgZqG5S6IdliiwaiCFlxMbya790z//jUh5pJdOcm2QuA+fDOGdfU3k=
|
||||
X-Postal-MsgID: mPVbUwFRWZcU
|
||||
Received: from web-ui (10.210.10.54 [10.210.10.54]) by Postal with HTTP; Thu, 22 Jul 2021 17:01:39 +0000
|
||||
Date: Thu, 22 Jul 2021 18:01:39 +0100
|
||||
From: test@adamtest.viaduct.io
|
||||
To: JfkFM0Sy6bTz1N@dkimvalidator.com
|
||||
Message-ID: <d996f20d-c0c5-46d5-ba22-3bac0d859142@rp.adampostal.viaduct.io>
|
||||
Subject: Test Message at July 22, 2021 13:01
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain;
|
||||
charset=UTF-8
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
This is a message to test the delivery of messages through Postal.
|
||||
35
spec/lib/postal/dkim_header_spec.rb
Normal file
35
spec/lib/postal/dkim_header_spec.rb
Normal file
@@ -0,0 +1,35 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Postal::DKIMHeader do
|
||||
|
||||
examples = Rails.root.join('spec/examples/dkim_signing/*.msg')
|
||||
Dir[examples].each do |path|
|
||||
contents = File.read(path)
|
||||
frontmatter, email = contents.split(/^---\n/m, 2)
|
||||
frontmatter = YAML.load(frontmatter)
|
||||
email.strip
|
||||
it "works with #{path.split('/').first}" do
|
||||
mocked_time = Time.at(frontmatter['time'].to_i)
|
||||
allow(Time).to receive(:now).and_return(mocked_time)
|
||||
|
||||
domain = instance_double('Domain')
|
||||
allow(domain).to receive(:dkim_status).and_return('OK')
|
||||
allow(domain).to receive(:name).and_return(frontmatter['domain'])
|
||||
allow(domain).to receive(:dkim_key).and_return(OpenSSL::PKey::RSA.new(frontmatter['private_key']))
|
||||
allow(domain).to receive(:dkim_identifier).and_return(frontmatter['dkim_identifier'])
|
||||
|
||||
expectation = "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; " \
|
||||
"d=#{frontmatter['domain']}; s=#{frontmatter['dkim_identifier']}; t=#{mocked_time.to_i}; " \
|
||||
"bh=#{frontmatter['bh']}; "\
|
||||
"h=#{frontmatter['headers']}; " \
|
||||
"b=#{frontmatter['b']}"
|
||||
|
||||
header = described_class.new(domain, email)
|
||||
|
||||
expect(header.dkim_header).to eq expectation
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
المرجع في مشكلة جديدة
حظر مستخدم