Improved email sender parsing with multiple senders in from.
This commit is contained in:
parent
8b72ce5933
commit
a548009b86
4 changed files with 98 additions and 6 deletions
|
@ -641,12 +641,22 @@ returns
|
|||
data = {}
|
||||
|
||||
begin
|
||||
data[:from_email] = Mail::Address.new(from).address
|
||||
data[:from_local] = Mail::Address.new(from).local
|
||||
data[:from_domain] = Mail::Address.new(from).domain
|
||||
data[:from_display_name] = Mail::Address.new(from).display_name ||
|
||||
(Mail::Address.new(from).comments && Mail::Address.new(from).comments[0])
|
||||
rescue
|
||||
list = Mail::AddressList.new(from)
|
||||
list.addresses.each { |address|
|
||||
data[:from_email] = address.address
|
||||
data[:from_local] = address.local
|
||||
data[:from_domain] = address.domain
|
||||
data[:from_display_name] = address.display_name ||
|
||||
(address.comments && address.comments[0])
|
||||
break if data[:from_email].present? && data[:from_email] =~ /@/
|
||||
}
|
||||
rescue => e
|
||||
if from =~ /<>/ && from =~ /<.+?>/
|
||||
data = sender_properties(from.gsub(/<>/, ''))
|
||||
end
|
||||
end
|
||||
|
||||
if data.empty? || data[:from_email].blank?
|
||||
from.strip!
|
||||
if from =~ /^(.+?)<(.+?)@(.+?)>$/
|
||||
data[:from_email] = "#{$2}@#{$3}"
|
||||
|
|
24
test/fixtures/mail58.box
vendored
Normal file
24
test/fixtures/mail58.box
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
From: "Yangzhou ABC Lighting Equipment " <bob@example.com>, "LTD" <ly@example.com>
|
||||
Reply-To: zsm@example.com
|
||||
To: "verkauf" <verkauf@example.de>
|
||||
Subject: new design solar street lights
|
||||
Message-ID: <201609141249219194555@example.com>
|
||||
Date: Wed, 14 Sep 2016 12:49:21 +0800
|
||||
X-Mailer: Foxmail 6, 10, 201, 20 [cn]
|
||||
MIME-Version: 1.0
|
||||
X-Priority: 3
|
||||
X-CM-TRANSID:iOCowAC39vrU1thXd4NnAQ--.234S2
|
||||
X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73
|
||||
VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUg3xhUUUUU
|
||||
X-Originating-IP: [121.233.254.237]
|
||||
X-CM-SenderInfo: to16vxpkrqw63pof0z/1tbiTBXk7ldp+Z4oIwAAsB
|
||||
Content-Type: text/plain;
|
||||
charset=iso-8859-1
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
=E4=F6=FC=DF ad asd
|
||||
|
||||
-Martin
|
||||
|
||||
--
|
||||
Old programmers never die. They just branch to a new address.
|
24
test/fixtures/mail59.box
vendored
Normal file
24
test/fixtures/mail59.box
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
From: "Yangzhou ABC Lighting Equipment " <>, "LTD" <ly@example.com>
|
||||
Reply-To: zsm@example.com
|
||||
To: "verkauf" <verkauf@example.de>
|
||||
Subject: new design solar street lights
|
||||
Message-ID: <201609141249219194555@example.com>
|
||||
Date: Wed, 14 Sep 2016 12:49:21 +0800
|
||||
X-Mailer: Foxmail 6, 10, 201, 20 [cn]
|
||||
MIME-Version: 1.0
|
||||
X-Priority: 3
|
||||
X-CM-TRANSID:iOCowAC39vrU1thXd4NnAQ--.234S2
|
||||
X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73
|
||||
VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUg3xhUUUUU
|
||||
X-Originating-IP: [121.233.254.237]
|
||||
X-CM-SenderInfo: to16vxpkrqw63pof0z/1tbiTBXk7ldp+Z4oIwAAsB
|
||||
Content-Type: text/plain;
|
||||
charset=iso-8859-1
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
=E4=F6=FC=DF ad asd
|
||||
|
||||
-Martin
|
||||
|
||||
--
|
||||
Old programmers never die. They just branch to a new address.
|
|
@ -1157,6 +1157,40 @@ Bob Smith
|
|||
',
|
||||
},
|
||||
},
|
||||
{
|
||||
data: IO.binread('test/fixtures/mail58.box'),
|
||||
body_md5: '548917e0bff0806f9b27c09bbf23bb38',
|
||||
params: {
|
||||
from: 'Yangzhou ABC Lighting Equipment <bob@example.com>, LTD <ly@example.com>',
|
||||
from_email: 'bob@example.com',
|
||||
from_display_name: 'Yangzhou ABC Lighting Equipment',
|
||||
subject: 'new design solar street lights',
|
||||
content_type: 'text/plain',
|
||||
body: "äöüß ad asd
|
||||
|
||||
-Martin
|
||||
|
||||
--
|
||||
Old programmers never die. They just branch to a new address."
|
||||
},
|
||||
},
|
||||
{
|
||||
data: IO.binread('test/fixtures/mail59.box'),
|
||||
body_md5: '548917e0bff0806f9b27c09bbf23bb38',
|
||||
params: {
|
||||
from: '"Yangzhou ABC Lighting Equipment " <>, "LTD" <ly@example.com>',
|
||||
from_email: 'ly@example.com',
|
||||
from_display_name: 'LTD',
|
||||
subject: 'new design solar street lights',
|
||||
content_type: 'text/plain',
|
||||
body: "äöüß ad asd
|
||||
|
||||
-Martin
|
||||
|
||||
--
|
||||
Old programmers never die. They just branch to a new address."
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
count = 0
|
||||
|
|
Loading…
Reference in a new issue