jpmobile 3.0.8 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION.yml +1 -1
- data/jpmobile.gemspec +1 -1
- data/lib/jpmobile/mail.rb +45 -42
- data/lib/jpmobile/mailer.rb +0 -1
- data/lib/jpmobile/util.rb +13 -3
- data/spec/unit/email-fixtures/iphone-jis.eml +15 -0
- data/spec/unit/email-fixtures/pc-mail-attached-without-subject.eml +45 -0
- data/spec/unit/receive_mail_spec.rb +28 -3
- data/spec/unit/util_spec.rb +23 -12
- data/test/rails/overrides/spec/mailers/mobile_mailer_spec.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 541349c0b2076a81078620a75a7c8748bf0a3f2e
|
4
|
+
data.tar.gz: 2022c410ccc6d3b2d023a944a26035c69858f6c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24ac8b306c0935e458450b28d44161119d5b290eb472b51e968347ba78f34856bd087ecd9437a182d3866d9dc417a34ab5340c9358b07ad18caa151e758f1cbc
|
7
|
+
data.tar.gz: 643a14da839b80dd0ae84c2cfb14d21b41da8d86b85e6b8717d24f3df7fd64b77782bbac84c555dd35cf800717e23a9215c98cd655a98294768c7de95326dabf
|
data/VERSION.yml
CHANGED
data/jpmobile.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{jpmobile}
|
8
|
-
s.version = "3.0.
|
8
|
+
s.version = "3.0.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Yoji Shidara", "Shin-ichiro OGAWA"]
|
data/lib/jpmobile/mail.rb
CHANGED
@@ -47,12 +47,6 @@ module Mail
|
|
47
47
|
def mobile=(m)
|
48
48
|
if @mobile = m
|
49
49
|
@charset = m.mail_charset(@charset)
|
50
|
-
|
51
|
-
if self.body
|
52
|
-
self.body.content_type_with_jpmobile = self.content_type
|
53
|
-
self.body.charset = @charset
|
54
|
-
self.body.mobile = m
|
55
|
-
end
|
56
50
|
end
|
57
51
|
end
|
58
52
|
|
@@ -65,7 +59,6 @@ module Mail
|
|
65
59
|
|
66
60
|
ready_to_send!
|
67
61
|
|
68
|
-
self.body.charset = @charset
|
69
62
|
self.body.mobile = @mobile
|
70
63
|
self.header['Content-Transfer-Encoding'].value = @mobile.content_transfer_encoding(self.header)
|
71
64
|
if @mobile.decorated?
|
@@ -102,6 +95,18 @@ module Mail
|
|
102
95
|
self.body = body_part
|
103
96
|
end
|
104
97
|
|
98
|
+
def init_with_hash_with_jpmobile(hash)
|
99
|
+
if hash[:body_raw]
|
100
|
+
@mobile = hash[:mobile]
|
101
|
+
init_with_string(hash[:body_raw])
|
102
|
+
else
|
103
|
+
init_with_hash_without_jpmobile(hash)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
alias_method :init_with_hash_without_jpmobile, :init_with_hash
|
108
|
+
alias_method :init_with_hash, :init_with_hash_with_jpmobile
|
109
|
+
|
105
110
|
def init_with_string(string)
|
106
111
|
# convert to ASCII-8BIT for ascii incompatible encodings
|
107
112
|
s = Jpmobile::Util.ascii_8bit(string)
|
@@ -115,7 +120,6 @@ module Mail
|
|
115
120
|
process_body_raw_without_jpmobile
|
116
121
|
|
117
122
|
if @mobile
|
118
|
-
@body.charset = @charset
|
119
123
|
@body.mobile = @mobile
|
120
124
|
@body.content_type_with_jpmobile = self.content_type
|
121
125
|
|
@@ -139,6 +143,11 @@ module Mail
|
|
139
143
|
@raw_source = value.to_crlf
|
140
144
|
end
|
141
145
|
|
146
|
+
def separate_parts_with_jpmobile
|
147
|
+
@body.mobile = @mobile
|
148
|
+
separate_parts_without_jpmobile
|
149
|
+
end
|
150
|
+
|
142
151
|
alias_method :encoded_without_jpmobile, :encoded
|
143
152
|
alias_method :encoded, :encoded_with_jpmobile
|
144
153
|
|
@@ -148,6 +157,9 @@ module Mail
|
|
148
157
|
alias_method :process_body_raw_without_jpmobile, :process_body_raw
|
149
158
|
alias_method :process_body_raw, :process_body_raw_with_jpmobile
|
150
159
|
|
160
|
+
alias_method :separate_parts_without_jpmobile, :separate_parts
|
161
|
+
alias_method :separate_parts, :separate_parts_with_jpmobile
|
162
|
+
|
151
163
|
# -- docomo
|
152
164
|
# multipart/mixed
|
153
165
|
# |- multipart/related
|
@@ -248,34 +260,23 @@ module Mail
|
|
248
260
|
# override charset
|
249
261
|
if self.header[:content_type]
|
250
262
|
content_type_charset = Jpmobile::Util.extract_charset(self.header[:content_type].value)
|
263
|
+
@charset = content_type_charset
|
251
264
|
unless content_type_charset.blank?
|
252
|
-
@charset = content_type_charset
|
253
265
|
self.header[:content_type].parameters[:charset] = @charset
|
254
266
|
@mobile_main_type = self.header[:content_type].main_type
|
255
267
|
end
|
256
|
-
|
257
|
-
if !Jpmobile::Email.convertable?(self.header[:content_type].value) and content_type_charset.blank?
|
258
|
-
@charset = ''
|
259
|
-
end
|
260
268
|
end
|
261
269
|
|
262
270
|
# convert header(s)
|
263
271
|
if self.header[:subject]
|
264
272
|
subject_charset = Jpmobile::Util.extract_charset(self.header[:subject].value)
|
265
|
-
|
266
|
-
# override subject encoding if @charset is blank
|
267
|
-
@charset = subject_charset if !subject_charset.blank? # and @charset.blank?
|
268
273
|
self.header[:subject].charset = subject_charset unless subject_charset.blank?
|
269
274
|
|
270
275
|
if @mobile
|
271
276
|
subject_value = Encodings.value_decode(self.header[:subject].value)
|
272
277
|
subject_converting_encoding = Jpmobile::Util.detect_encoding(subject_value)
|
273
278
|
v = @mobile.to_mail_internal(subject_value, subject_converting_encoding)
|
274
|
-
|
275
|
-
self.header[:subject].value = Jpmobile::Util.force_encode(v, @charset, Jpmobile::Util::UTF8)
|
276
|
-
else
|
277
|
-
self.header[:subject].value = Jpmobile::Util.force_encode(v, @mobile.mail_charset(@charset), Jpmobile::Util::UTF8)
|
278
|
-
end
|
279
|
+
self.header[:subject].value = Jpmobile::Util.force_encode(v, @mobile.mail_charset(subject_charset), Jpmobile::Util::UTF8)
|
279
280
|
end
|
280
281
|
end
|
281
282
|
|
@@ -340,25 +341,18 @@ module Mail
|
|
340
341
|
# convert encoding
|
341
342
|
def encoded_with_jpmobile(transfer_encoding = '8bit')
|
342
343
|
if @mobile and !multipart?
|
343
|
-
|
344
|
-
|
345
|
-
elsif Jpmobile::Util.ascii_8bit?(@raw_source)
|
344
|
+
case transfer_encoding
|
345
|
+
when /base64/
|
346
346
|
_raw_source = if transfer_encoding == encoding
|
347
|
-
@raw_source
|
347
|
+
@raw_source.dup
|
348
348
|
else
|
349
|
-
|
350
|
-
enc.encode(@raw_source)
|
349
|
+
get_best_encoding(transfer_encoding).encode(@raw_source)
|
351
350
|
end
|
352
|
-
Jpmobile::Util.
|
351
|
+
Jpmobile::Util.set_encoding(_raw_source, @mobile.mail_charset(@charset))
|
352
|
+
when /quoted-printable/
|
353
|
+
Jpmobile::Util.set_encoding([@mobile.to_mail_body(@raw_source)].pack("M").gsub(/\n/, "\r\n"), @mobile.mail_charset(@charset))
|
353
354
|
else
|
354
|
-
|
355
|
-
when /quoted-printable/
|
356
|
-
# [str].pack("M").gsub(/\n/, "\r\n")
|
357
|
-
Jpmobile::Util.force_encode([@mobile.to_mail_body(Jpmobile::Util.force_encode(@raw_source, @charset, Jpmobile::Util::UTF8))].pack("M").gsub(/\n/, "\r\n"), Jpmobile::Util::BINARY, @charset)
|
358
|
-
# @mobile.to_mail_body(Jpmobile::Util.force_encode(@raw_source, @charset, Jpmobile::Util::UTF8))
|
359
|
-
else
|
360
|
-
@mobile.to_mail_body(Jpmobile::Util.force_encode(@raw_source, @charset, Jpmobile::Util::UTF8))
|
361
|
-
end
|
355
|
+
@mobile.to_mail_body(Jpmobile::Util.force_encode(@raw_source, nil, Jpmobile::Util::UTF8))
|
362
356
|
end
|
363
357
|
else
|
364
358
|
encoded_without_jpmobile(transfer_encoding)
|
@@ -384,9 +378,7 @@ module Mail
|
|
384
378
|
|
385
379
|
if self.multipart? and @mobile
|
386
380
|
self.parts.each do |part|
|
387
|
-
part.charset = @mobile.mail_charset(part.charset)
|
388
381
|
part.mobile = @mobile
|
389
|
-
part.body.charset = part.charset
|
390
382
|
part.body.mobile = @mobile
|
391
383
|
end
|
392
384
|
end
|
@@ -400,7 +392,7 @@ module Mail
|
|
400
392
|
|
401
393
|
def preamble_with_jpmobile
|
402
394
|
if @mobile
|
403
|
-
Jpmobile::Util.encode(@preamble, @charset)
|
395
|
+
Jpmobile::Util.encode(@preamble, @mobile.mail_charset(@charset))
|
404
396
|
else
|
405
397
|
preamble_without_jpmobile
|
406
398
|
end
|
@@ -408,7 +400,7 @@ module Mail
|
|
408
400
|
|
409
401
|
def epilogue_with_jpmobile
|
410
402
|
if @mobile
|
411
|
-
Jpmobile::Util.encode(@epilogue, @charset)
|
403
|
+
Jpmobile::Util.encode(@epilogue, @mobile.mail_charset(@charset))
|
412
404
|
else
|
413
405
|
epilogue_without_jpmobile
|
414
406
|
end
|
@@ -416,7 +408,7 @@ module Mail
|
|
416
408
|
|
417
409
|
def crlf_boundary_with_jpmobile
|
418
410
|
if @mobile
|
419
|
-
Jpmobile::Util.encode(crlf_boundary_without_jpmobile, @charset)
|
411
|
+
Jpmobile::Util.encode(crlf_boundary_without_jpmobile, @mobile.mail_charset(@charset))
|
420
412
|
else
|
421
413
|
crlf_boundary_without_jpmobile
|
422
414
|
end
|
@@ -424,7 +416,7 @@ module Mail
|
|
424
416
|
|
425
417
|
def end_boundary_with_jpmobile
|
426
418
|
if @mobile
|
427
|
-
Jpmobile::Util.encode(end_boundary_without_jpmobile, @charset)
|
419
|
+
Jpmobile::Util.encode(end_boundary_without_jpmobile, @mobile.mail_charset(@charset))
|
428
420
|
else
|
429
421
|
end_boundary_without_jpmobile
|
430
422
|
end
|
@@ -453,6 +445,17 @@ module Mail
|
|
453
445
|
|
454
446
|
alias_method :epilogue_without_jpmobile, :epilogue
|
455
447
|
alias_method :epilogue, :epilogue_with_jpmobile
|
448
|
+
|
449
|
+
def split!(boundary)
|
450
|
+
self.boundary = boundary
|
451
|
+
parts = raw_source.split(/(?:\A|\r\n)--#{Regexp.escape(boundary)}(?=(?:--)?\s*$)/)
|
452
|
+
# Make the preamble equal to the preamble (if any)
|
453
|
+
self.preamble = parts[0].to_s.strip
|
454
|
+
# Make the epilogue equal to the epilogue (if any)
|
455
|
+
self.epilogue = parts[-1].to_s.sub('--', '').strip
|
456
|
+
parts[1...-1].to_a.each { |part| @parts << Mail::Part.new(:body_raw => part, :mobile => @mobile) }
|
457
|
+
self
|
458
|
+
end
|
456
459
|
end
|
457
460
|
|
458
461
|
class UnstructuredField
|
data/lib/jpmobile/mailer.rb
CHANGED
data/lib/jpmobile/util.rb
CHANGED
@@ -429,18 +429,28 @@ module Jpmobile
|
|
429
429
|
def check_charset(str, charset)
|
430
430
|
if Object.const_defined?(:Encoding)
|
431
431
|
# use NKF.guess
|
432
|
-
::Encoding.compatible?(
|
432
|
+
::Encoding.compatible?(guess_encoding(str), ::Encoding.find(charset))
|
433
433
|
else
|
434
434
|
true
|
435
435
|
end
|
436
436
|
end
|
437
437
|
|
438
438
|
def correct_encoding(str)
|
439
|
-
if
|
440
|
-
str.force_encoding(
|
439
|
+
if guess_encoding(str) != str.encoding
|
440
|
+
str.force_encoding(guess_encoding(str))
|
441
441
|
end
|
442
442
|
|
443
443
|
str
|
444
444
|
end
|
445
|
+
|
446
|
+
def guess_encoding(str)
|
447
|
+
encoding = NKF.guess(str)
|
448
|
+
# ISO-2022-JPにおいて、JIS X201半角カナエスケープシーケンスが含まれていたらCP50220とみなす
|
449
|
+
if encoding == ::Encoding::ISO2022_JP && str.dup.force_encoding(BINARY).include?("\e(I")
|
450
|
+
::Encoding::CP50220
|
451
|
+
else
|
452
|
+
encoding
|
453
|
+
end
|
454
|
+
end
|
445
455
|
end
|
446
456
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Delivered-To: info@jpmobile.jp
|
2
|
+
From: "jis@i.softbank.jp" <jis@i.softbank.jp>
|
3
|
+
Content-Type: text/plain;
|
4
|
+
charset=iso-2022-jp
|
5
|
+
X-Mailer: iPhone Mail (12B435)
|
6
|
+
Message-Id: <F574F824-7263-44E6-8423-000000000000@i.softbank.jp>
|
7
|
+
Date: Fri, 5 Dec 2014 13:14:37 +0900
|
8
|
+
To: "info@jpmobile.jp" <info@jpmobile.jp>
|
9
|
+
Content-Transfer-Encoding: 7bit
|
10
|
+
Mime-Version: 1.0 (1.0)
|
11
|
+
X-SB-Service: Virus-Checked
|
12
|
+
|
13
|
+
(=(I_$B&X(I_(B)(II(B
|
14
|
+
|
15
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
X-Account-Key: account2
|
2
|
+
X-UIDL: UID44724-1271041990
|
3
|
+
X-Mozilla-Status: 0001
|
4
|
+
X-Mozilla-Status2: 10000000
|
5
|
+
X-Mozilla-Keys:
|
6
|
+
Return-Path: <info@jp.mobile>
|
7
|
+
X-Original-To: info+to@jp.mobile
|
8
|
+
Delivered-To: info+to@jp.mobile
|
9
|
+
Received: from localhost (localhost [127.0.0.1])
|
10
|
+
by mx1.jp.mobile (Postfix) with ESMTP id 916D982D3C
|
11
|
+
for <info+to@jp.mobile>; Mon, 17 Jan 2011 16:43:00 +0900 (JST)
|
12
|
+
Received: from mx1.jp.mobile ([127.0.0.1])
|
13
|
+
by localhost (mx1.jp.mobile [127.0.0.1]) (amavisd-new, port 10024)
|
14
|
+
with ESMTP id 4c+D+lqN6aOJ for <info+to@jp.mobile>;
|
15
|
+
Mon, 17 Jan 2011 16:43:00 +0900 (JST)
|
16
|
+
Received: by mx1.jp.mobile (Postfix, from userid 58)
|
17
|
+
id 68BFD82D33; Mon, 17 Jan 2011 16:43:00 +0900 (JST)
|
18
|
+
Message-ID: <4D33F300.8050702@jpmobile.jp>
|
19
|
+
Date: Mon, 17 Jan 2011 16:42:56 +0900
|
20
|
+
From: Shin-ichiro OGAWA <info@jpmobile.jp>
|
21
|
+
User-Agent: Mozilla-Thunderbird 2.0.0.24 (X11/20100329)
|
22
|
+
MIME-Version: 1.0
|
23
|
+
To: info+to@jp.mobile
|
24
|
+
Subject:
|
25
|
+
Content-Type: multipart/mixed;
|
26
|
+
boundary="------------010605060509040104050402"
|
27
|
+
|
28
|
+
This is a multi-part message in MIME format.
|
29
|
+
--------------010605060509040104050402
|
30
|
+
Content-Type: text/plain; charset=ISO-2022-JP
|
31
|
+
Content-Transfer-Encoding: 7bit
|
32
|
+
|
33
|
+
$BK\J8$G$9(B
|
34
|
+
|
35
|
+
|
36
|
+
--------------010605060509040104050402
|
37
|
+
Content-Transfer-Encoding: base64
|
38
|
+
Content-Type: image/gif;
|
39
|
+
name="Transparent.gif"
|
40
|
+
Content-Disposition: attachment;
|
41
|
+
filename="Transparent.gif"
|
42
|
+
|
43
|
+
R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
|
44
|
+
--------------010605060509040104050402--
|
45
|
+
|
@@ -67,6 +67,21 @@ describe "Jpmobile::Mail#receive" do
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
describe "PC mail without subject" do
|
71
|
+
before(:each) do
|
72
|
+
@mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/pc-mail-attached-without-subject.eml")).read)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "body should be parsed correctly" do
|
76
|
+
@mail.body.parts.size.should == 2
|
77
|
+
@mail.body.parts.first.body.to_s.should == "本文です\n\n"
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should encode correctly" do
|
81
|
+
ascii_8bit(@mail.to_s).should match(/GODlhAQABAIAAAAAAAP/)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
70
85
|
describe "Docomo" do
|
71
86
|
before(:each) do
|
72
87
|
@mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "../../test/rails/overrides/spec/fixtures/mobile_mailer/docomo-gmail-sjis.eml")).read)
|
@@ -258,7 +273,7 @@ describe "Jpmobile::Mail#receive" do
|
|
258
273
|
|
259
274
|
it 'should be encoded correctly' do
|
260
275
|
@mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/iphone-message.eml")).read)
|
261
|
-
@mail.encoded
|
276
|
+
@mail.encoded.should match(Regexp.escape("%[\e$B1`;yL>\e(B]%\e$B$N\e(B%[\e$BJ]8n<TL>\e(B]%"))
|
262
277
|
end
|
263
278
|
end
|
264
279
|
|
@@ -271,14 +286,14 @@ describe "Jpmobile::Mail#receive" do
|
|
271
286
|
|
272
287
|
it 'should be encoded correctly' do
|
273
288
|
@mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/iphone-mail3.eml")).read)
|
274
|
-
@mail.encoded
|
289
|
+
@mail.encoded.should match(/BK\\J82~9T\$J\$7!2#5#1#2J8;z!2/)
|
275
290
|
end
|
276
291
|
end
|
277
292
|
|
278
293
|
it 'should not raise when parsing attached email' do
|
279
294
|
lambda {
|
280
295
|
@mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/au-attached.eml")).read)
|
281
|
-
@mail.encoded
|
296
|
+
@mail.encoded.should match('/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPQAA')
|
282
297
|
}.should_not raise_error
|
283
298
|
end
|
284
299
|
end
|
@@ -347,6 +362,16 @@ describe "Jpmobile::Mail#receive" do
|
|
347
362
|
@mail.body.to_s.should == "テスト本文\n\n"
|
348
363
|
end
|
349
364
|
end
|
365
|
+
|
366
|
+
context "iPhone" do
|
367
|
+
before(:each) do
|
368
|
+
@mail = Mail.new(open(File.join(File.expand_path(File.dirname(__FILE__)), "email-fixtures/iphone-jis.eml")).read)
|
369
|
+
end
|
370
|
+
|
371
|
+
it "body should be parsed correctly" do
|
372
|
+
expect(@mail.body.to_s).to eq("(=゚ω゚)ノ\n\n\n")
|
373
|
+
end
|
374
|
+
end
|
350
375
|
end
|
351
376
|
|
352
377
|
describe 'bounced mail' do
|
data/spec/unit/util_spec.rb
CHANGED
@@ -133,22 +133,33 @@ describe Jpmobile::Util do
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
136
|
+
if defined?(Encoding)
|
137
|
+
describe 'check_charset' do
|
138
|
+
it 'returns true if compatible' do
|
139
|
+
str = 'ABC'.force_encoding('ASCII-8BIT')
|
140
|
+
check_charset(str, 'UTF-8').should be_true
|
141
|
+
end
|
142
|
+
|
143
|
+
it 'returns false if incompatible' do
|
144
|
+
str = '再現'.encode('ISO-2022-JP')
|
145
|
+
check_charset(str, 'UTF-8').should be_false
|
146
|
+
end
|
140
147
|
end
|
141
148
|
|
142
|
-
|
143
|
-
|
144
|
-
|
149
|
+
describe 'correct_encoding' do
|
150
|
+
it 'updates encoding correctly' do
|
151
|
+
str = '再現'.force_encoding('ISO-2022-JP')
|
152
|
+
correct_encoding(str).encoding.should == Encoding::UTF_8
|
153
|
+
end
|
145
154
|
end
|
146
|
-
end
|
147
155
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
156
|
+
describe 'guess_encoding' do
|
157
|
+
it 'guesses encoding correclty' do
|
158
|
+
expect(guess_encoding('テスト')).to eq Encoding::UTF_8
|
159
|
+
expect(guess_encoding("\x83\x65\x83\x58\x83\x67")).to eq Encoding::Shift_JIS
|
160
|
+
expect(guess_encoding("\e\x24\x42\x25\x46\x25\x39\x25\x48\e\x28\x42")).to eq Encoding::ISO2022_JP
|
161
|
+
expect(guess_encoding("\e\x28\x49\x43\x3D\x44\e\x28\x42")).to eq Encoding::CP50220
|
162
|
+
end
|
152
163
|
end
|
153
164
|
end
|
154
165
|
end
|
@@ -474,7 +474,7 @@ describe MobileMailer, " mail address" do
|
|
474
474
|
emails.first.destinations.include?(to).should be_true
|
475
475
|
end
|
476
476
|
|
477
|
-
it "複数のアドレスが有効になること"
|
477
|
+
it "複数のアドレスが有効になること" do
|
478
478
|
to_addresses = [".ruby.rails.@domomo-ezweb.ne.jp", "ruby.rails.@domomo-ezweb.ne.jp", "ruby...rails@domomo-ezweb.ne.jp"]
|
479
479
|
to = to_addresses.join(", ")
|
480
480
|
MobileMailer.view_selection(to, @subject, @text).deliver
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jpmobile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoji Shidara
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jeweler
|
@@ -350,8 +350,10 @@ files:
|
|
350
350
|
- spec/unit/email-fixtures/docomo-emoji.eml
|
351
351
|
- spec/unit/email-fixtures/docomo-gmail-sjis.eml
|
352
352
|
- spec/unit/email-fixtures/docomo-jis.eml
|
353
|
+
- spec/unit/email-fixtures/iphone-jis.eml
|
353
354
|
- spec/unit/email-fixtures/iphone-mail3.eml
|
354
355
|
- spec/unit/email-fixtures/iphone-message.eml
|
356
|
+
- spec/unit/email-fixtures/pc-mail-attached-without-subject.eml
|
355
357
|
- spec/unit/email-fixtures/pc-mail-multi.eml
|
356
358
|
- spec/unit/email-fixtures/pc-mail-single.eml
|
357
359
|
- spec/unit/email-fixtures/photo.jpg
|