<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -77,8 +77,15 @@ module TMail
       delete_if {|n,v| v.empty? }
     end
 
+    def enforced_message_id=(val)
+      @message_id_enforced = true
+      self.message_id = val
+    end
+
     def add_message_id( fqdn = nil )
-      self.message_id = ::TMail::new_message_id(fqdn)
+      unless @message_id_enforced
+        self.message_id = ::TMail::new_message_id(fqdn)
+      end
     end
 
     def add_date</diff>
      <filename>lib/tmail/net.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 == Mon Nov 17 11:49:30 UTC 2008 Mikel Lindsaar &lt;raasdnil@gmail.com&gt;
 
+* Closes #22681 - Ability to set messageid.  Message id will not be overwritten if user calls mail.enforced_message_id=(new_message_id) before calling mail.ready_to_send
 * Closed #20788 - Allow multiple dots in email address. (Alexey Merejine)
 * Closed #21696 - Allow message ids to have two '@' symbols in them (Nicolas Fouch&#233;)
 </diff>
      <filename>log/BugTrackingLog.txt</filename>
    </modified>
    <modified>
      <diff>@@ -981,4 +981,22 @@ class ContentDispositionHeaderTester &lt; Test::Unit::TestCase
     assert_equal(&quot;To: Mikel@me.com,\r\n\t mikel@you.com\r\n\r\n&quot;, h.encoded)
   end
 
+  def test_adding_custom_message_id
+    fixture = File.read(File.dirname(__FILE__) + &quot;/fixtures/raw_email&quot;)
+    mail = TMail::Mail.parse(fixture)
+    message_id = &quot;&lt;12345@me.com&gt;&quot;
+    mail.enforced_message_id = message_id
+    mail.ready_to_send
+    assert_equal(message_id, mail.message_id)
+  end
+
+  def test_not_adding_custom_message_id
+    fixture = File.read(File.dirname(__FILE__) + &quot;/fixtures/raw_email&quot;)
+    mail = TMail::Mail.parse(fixture)
+    message_id = mail.message_id
+    mail.message_id = &quot;&lt;12345@me.com&gt;&quot;
+    mail.ready_to_send
+    assert_not_equal(message_id, mail.message_id)
+  end
+
 end</diff>
      <filename>test/test_header.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>a0c06f0d33a46161d4cff10d3b23fbc8aaa68ec4</id>
    </parent>
  </parents>
  <author>
    <name>mikel</name>
    <email>raasdnil@gmail.com</email>
  </author>
  <url>http://github.com/mikel/tmail/commit/cf300a07ecdc557e5e744099dc7a9a552145177f</url>
  <id>cf300a07ecdc557e5e744099dc7a9a552145177f</id>
  <committed-date>2008-11-17T06:57:57-08:00</committed-date>
  <authored-date>2008-11-17T06:57:57-08:00</authored-date>
  <message>Closes #22681 - Ability to set messageid.  Message id will not be overwritten if user calls mail.enforced_message_id=(val) before calling mail.ready_to_send</message>
  <tree>2c2d1aae9a248c3ce7d92e0abb20fe4424e140f4</tree>
  <committer>
    <name>mikel</name>
    <email>raasdnil@gmail.com</email>
  </committer>
</commit>
