<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,8 @@
+*2.2.1 [RC2 or 2.2 final]*
+
+* Turn on STARTTLS if it is available in Net::SMTP (added in Ruby 1.8.7) and the SMTP server supports it (This is required for Gmail's SMTP server) #1336 [Grant Hollingworth]
+
+
 *2.2.0 [RC1] (October 24th, 2008)*
 
 * Add layout functionality to mailers [Pratik]</diff>
      <filename>actionmailer/CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -663,8 +663,10 @@ module ActionMailer #:nodoc:
         mail.ready_to_send
         sender = mail['return-path'] || mail.from
 
-        Net::SMTP.start(smtp_settings[:address], smtp_settings[:port], smtp_settings[:domain],
-            smtp_settings[:user_name], smtp_settings[:password], smtp_settings[:authentication]) do |smtp|
+        smtp = Net::SMTP.new(smtp_settings[:address], smtp_settings[:port])
+        smtp.enable_starttls_auto if smtp.respond_to?(:enable_starttls_auto)
+        smtp.start(smtp_settings[:domain], smtp_settings[:user_name], smtp_settings[:password],
+                   smtp_settings[:authentication]) do |smtp|
           smtp.sendmail(mail.encoded, sender, destinations)
         end
       end</diff>
      <filename>actionmailer/lib/action_mailer/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,11 +24,15 @@ class MockSMTP
   def sendmail(mail, from, to)
     @@deliveries &lt;&lt; [mail, from, to]
   end
+
+  def start(*args)
+    yield self
+  end
 end
 
 class Net::SMTP
-  def self.start(*args)
-    yield MockSMTP.new
+  def self.new(*args)
+    MockSMTP.new
   end
 end
 </diff>
      <filename>actionmailer/test/abstract_unit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -938,6 +938,20 @@ EOF
     mail = TestMailer.create_body_ivar(@recipient)
     assert_equal &quot;body: foo\nbar: baz&quot;, mail.body
   end
+
+  def test_starttls_is_enabled_if_supported
+    MockSMTP.any_instance.expects(:respond_to?).with(:enable_starttls_auto).returns(true)
+    MockSMTP.any_instance.expects(:enable_starttls_auto)
+    ActionMailer::Base.delivery_method = :smtp
+    TestMailer.deliver_signed_up(@recipient)
+  end
+
+  def test_starttls_is_disabled_if_not_supported
+    MockSMTP.any_instance.expects(:respond_to?).with(:enable_starttls_auto).returns(false)
+    MockSMTP.any_instance.expects(:enable_starttls_auto).never
+    ActionMailer::Base.delivery_method = :smtp
+    TestMailer.deliver_signed_up(@recipient)
+  end
 end
 
 end # uses_mocha</diff>
      <filename>actionmailer/test/mail_service_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>6406a87eedb74a41f19f5ad21ea1b8f97dd45755</id>
    </parent>
  </parents>
  <author>
    <name>Grant Hollingworth</name>
    <email>grant@antiflux.org</email>
  </author>
  <url>http://github.com/rails/rails/commit/732c724df61bc8b780dc42817625b25a321908e4</url>
  <id>732c724df61bc8b780dc42817625b25a321908e4</id>
  <committed-date>2008-11-06T04:07:16-08:00</committed-date>
  <authored-date>2008-11-05T19:54:37-08:00</authored-date>
  <message>Turn on STARTTLS if it is available in Net::SMTP (added in Ruby 1.8.7) and the SMTP server supports it [#1336 state:committed]

Signed-off-by: David Heinemeier Hansson &lt;david@loudthinking.com&gt;</message>
  <tree>c444d2594fc1bc6f3888d9eeb61b6b8417959d58</tree>
  <committer>
    <name>David Heinemeier Hansson</name>
    <email>david@loudthinking.com</email>
  </committer>
</commit>
