Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

avoid generating invalid SMTP commands in ruby pre 1.9

Signed-off-by: Michael Koziarski <michael@koziarski.com>

Conflicts:

	actionmailer/lib/action_mailer/base.rb
  • Loading branch information...
commit 7e0aa35c20f06fd9ef245155e30e81cfb38bad05 1 parent 02c3c9d
Michael Koziarski NZKoz authored
2  actionmailer/lib/action_mailer/delivery_method/smtp.rb
View
@@ -16,7 +16,7 @@ class Smtp < Method
def perform_delivery(mail)
destinations = mail.destinations
mail.ready_to_send
- sender = (mail['return-path'] && mail['return-path'].spec) || mail['from']
+ sender = (mail['return-path'] && mail['return-path'].spec) || Array(mail.from).first
smtp = Net::SMTP.new(settings[:address], settings[:port])
smtp.enable_starttls_auto if settings[:enable_starttls_auto] && smtp.respond_to?(:enable_starttls_auto)
34 actionmailer/test/mail_service_test.rb
View
@@ -31,6 +31,18 @@ def cancelled_account(recipient)
render :text => "Goodbye, Mr. #{recipient}"
end
+ def from_with_name
+ from "System <system@loudthinking.com>"
+ recipients "root@loudthinking.com"
+ body "Nothing to see here."
+ end
+
+ def from_without_name
+ from "system@loudthinking.com"
+ recipients "root@loudthinking.com"
+ body "Nothing to see here."
+ end
+
def cc_bcc(recipient)
recipients recipient
subject "testing bcc/cc"
@@ -487,6 +499,28 @@ def test_cc_bcc
assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded
end
+ def test_from_without_name_for_smtp
+ ActionMailer::Base.delivery_method = :smtp
+ TestMailer.deliver_from_without_name
+
+ mail = MockSMTP.deliveries.first
+ assert_not_nil mail
+ mail, from, to = mail
+
+ assert_equal 'system@loudthinking.com', from.to_s
+ end
+
+ def test_from_with_name_for_smtp
+ ActionMailer::Base.delivery_method = :smtp
+ TestMailer.deliver_from_with_name
+
+ mail = MockSMTP.deliveries.first
+ assert_not_nil mail
+ mail, from, to = mail
+
+ assert_equal 'system@loudthinking.com', from.to_s
+ end
+
def test_reply_to
expected = new_mail

1 comment on commit 7e0aa35

Levin Alexander

thank you!

Please sign in to comment.
Something went wrong with that request. Please try again.