# Mail Gem version 1.3.0

**URL:** <https://www.ruby-forum.com/t/mail-gem-version-1-3-0/179389>\
**Category:** Ruby\
**Created:** [November 24, 2009, 1:31am UTC](https://www.ruby-forum.com/t/mail-gem-version-1-3-0/179389 "2009-11-24T01:31:57Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mikel\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/2bfe46/32.png) [@Mikel\_L](https://www.ruby-forum.com/u/Mikel_L)\
**Post date:** [November 24, 2009, 1:31am UTC](https://www.ruby-forum.com/t/mail-gem-version-1-3-0/179389/1 "2009-11-24T01:31:57Z")

</div>

So, mail Gem version 1.3.0 has been released.

The upgrades have been mainly in getting ActionMailer to work with Mail  
instead of TMail.

This really put Mail through it’s paces and I found a lot of little edge  
case bugs to fix.

The good news is that ActionMailer now runs with Mail with all tests  
passing  
on MRI 1.8.6, 1.8.7 and 1.9.1

Mail of course, still passes all specs in MRI 1.8.6, 1.8.7 and 1.9.1

Basically, if you are using Mail 1.x, upgrade to the latest version, you  
should not get any breakage in your code. Please let me know if you do.

Also, anyone using TMail could upgrade to Mail 1.3.0 now without loss of  
functionality.

The change log is below:

== Mon Nov 23 23:34:22 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Resolved Issue #12 - Wrong comment in smtp.rb

== Mon Nov 23 22:35:50 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Changed the way attachments are added so that it does not break  
depending  
on the order  
of the Hash passed in.
- Version bump to 1.3.0 - Now works with Edge ActionMailer, MRI 1.8.6,  
1.8.7, 1.9.1, all tests passing

== Sun Nov 22 12:19:44 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Added check on add\_part to make sure if there is already a body, and  
if  
so, make a text\_part of the body
- Fixing up attachment adding and making sure multipart emails always  
have  
boundaries
- Change Message#attachments to now recursively return all attachments  
in  
the email in an ordered flattened array
- Added ability for Mail::Message to accept {:headers =\>  
{‘custom-header’ =\>  
‘value’, ‘another-custom-header’ =\> ‘value’}} as a param on init
- Adding ability to Mail::Message to add a part via :part(params) with  
optional block
- Fixed up QP encoding forcing underscores into everything with a space
- Added ReturnPathField#address
- Updating gem loads and active support loads

== Sat Nov 21 12:52:46 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Changed Mail::Encodings to clean it up, added in  
unquote\_and\_convert\_to as  
well as refactor in this area

== Thu Nov 19 04:16:10 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Added sendmail support from (Simon R.)
- Changed to bundler for gem dependancies and moved gem generation into  
rakefile (Simon R.)
- Bumped to 1.2.6 for sendmail support

== Wed Nov 18 04:26:21 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Changed Encodings.param\_encode(string) so it intelligently encodes and  
quotes needed  
items and leaves plain, no special char, US-ASCII alone unquoted.

== Sat Nov 14 08:20:21 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Resolved Issue #10 - empty/nil cc/bcc field causes exception  
(Mail::Field::ParseError)

== Fri Nov 13 00:31:04 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Hacked and mutilated the network section, made it easier to extend out  
with other  
delivery and retriever methods. API changed SLIGHTLY with this.  
Please  
check the  
readme
- Resolved Issue #8 - Mail::SMTP now delivers to all mail.destinations
- Version bump to 1.2.5

== Thu Nov 12 02:58:01 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Resolved Issue #5 - Message ID not handling multiple periods in left  
hand  
side
- Resolved Issue #6 - Ordering of add\_file and body items causes invalid  
emails

== Tue Nov 10 08:15:14 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Resolved Issue #5 - Message ID generation issue
- Resolved Issue #7 - README add\_file examples don’t seem to work -  
Updated  
readme and  
rdoc in Message#add\_file

== Mon Nov 9 23:38:33 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Added ability to create new email via a hash or hash-like object.  
- Moved all of the Part init into the Message class. Part now just uses  
Message’s init,  
also moved all the attachment related functions into Message. As Part  
is  
a subclass  
of message, you shouldn’t see any interface changes here.

== Fri Nov 6 22:52:10 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- a6ef2b4: Fixed Issue #4 - Can’t call encoding on non existant  
content-transer-encoding header

== Fri Nov 6 00:51:55 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Handled unstructured field folding “blank” lines
- Fixed error in header.rb that created fields into an array, instead of  
a  
FieldList, resulting  
in mail.encode returning a random sort order on the header.
- Made unstructured fields attempt to decode their values on :decode

== Thu Nov 5 04:45:31 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- 2acb70a: Closes Issue #1 - Handling badly formatted content-type  
fields  

== Wed Nov 4 23:24:32 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- 2b5d608: Closes Issue #2 - Empty header field values not parsing  
- Version bumb to 1.2.1

== Wed Nov 4 12:54:43 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Renamed Mail::Message.encode! to Mail::Message.ready\_to\_send!,  
deprecated  
:encode! 
- Rewrote encoding and decoding methods on all classes. Adds a lot of  
boiler plate code, but allows us to  
be really precise in each field type that needs custom encoding. Now  
all  
encoding is done by the field\_type  
itself. Need to follow through on the body. 
- Bump version to 1.2.0 due to changes of :encoded, :decoded behaviour  

== Tue Nov 3 00:59:45 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Tested mail against entire Enron set (2.3gb) and the Trec 2005 set  
(0.5gb), ~ half a million emails without crashing 
- Some headers only can appear once, enforce during header parse  
assignment.  
- Convert empty bodies into empty arrays instead of nil. 
- Handle blank content dispositions. 
- Mention Trec 2005 Spam Corpus in readme 
- Add ‘rake corpus:verify\_all’ to allow parse checks in bulk. 
- Added handling of multi value parameters, like  
filename_1_=“us-ascii’en’blah” filename\*2=“bleh” 
- Added dependency on ActiveSupport 2.3 or higher 

== Sun Nov 1 12:00:00 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- handle OpenSSL::SSL::VERIFY\_NONE returning 0 
- doing Mail.new { content\_type [text, plain, { charset =\> UTF-8 }] } is  
now  
possible (content type accepts an array) 

== Sat Oct 31 11:00:41 UTC 2009 Mikel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

- Fixed attachment handling, so mail can find attachment from a  
content-type,  
content-disposition or content-location
- Added content-location field and parser
- Added message.has\_attachments? for ActionMailer friendliness
- Added attachment.original\_filename for ActionMailer friendliness
