Class: TMail::Mail
- Includes:
- StrategyInterface, TextUtils
- Defined in:
- lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/quoting.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb,
lib/action_mailer/vendor/tmail-1.2.1/tmail/attachments.rb
Overview
facade.rb
Constant Summary collapse
- NOSEND_FIELDS =
%w( received bcc )
- ALLOW_MULTIPLE =
{ 'received' => true, 'resent-date' => true, 'resent-from' => true, 'resent-sender' => true, 'resent-to' => true, 'resent-cc' => true, 'resent-bcc' => true, 'resent-message-id' => true, 'comments' => true, 'keywords' => true }
- USE_ARRAY =
ALLOW_MULTIPLE
- FIELD_ORDER =
%w( return-path received resent-date resent-from resent-sender resent-to resent-cc resent-bcc resent-message-id date from sender reply-to to cc bcc message-id in-reply-to references subject comments keywords mime-version content-type content-transfer-encoding content-disposition content-description )
Constants included from TextUtils
TextUtils::ATOM_UNSAFE, TextUtils::CONTROL_CHAR, TextUtils::MESSAGE_ID, TextUtils::MIME_ENCODED, TextUtils::MONTH, TextUtils::NKF_FLAGS, TextUtils::PHRASE_UNSAFE, TextUtils::RFC2231_ENCODED, TextUtils::TOKEN_UNSAFE, TextUtils::WDAY, TextUtils::ZONESTR_TABLE
Instance Attribute Summary collapse
-
#port ⇒ Object
readonly
Returns the value of attribute port.
Class Method Summary collapse
- .boundary ⇒ Object
- .load(fname) ⇒ Object (also: load_from, loadfrom)
- .msgid ⇒ Object
- .parse(str) ⇒ Object
Instance Method Summary collapse
-
#[](key) ⇒ Object
(also: #fetch)
Returns a TMail::AddressHeader object of the field you are querying.
-
#[]=(key, val) ⇒ Object
(also: #store)
Allows you to set or delete TMail header objects at will.
- #accept(strategy) ⇒ Object
- #add_date ⇒ Object
- #add_message_id(fqdn = nil) ⇒ Object
- #attachment?(part) ⇒ Boolean
- #attachments ⇒ Object
-
#base64_decode! ⇒ Object
(also: #base64_decode)
Destructively convert the Mail object’s body into a Base64 decoded email returning the modified Mail object.
-
#base64_encode! ⇒ Object
(also: #base64_encode)
Destructively convert the Mail object’s body into a Base64 encoded email returning the modified Mail object.
-
#bcc(default = nil) ⇒ Object
Returns who the email bcc’d as an Array of email addresses as opposed to an Array of TMail::Address objects which is what Mail#to_addrs returns.
-
#bcc=(*strs) ⇒ Object
Destructively sets the “Bcc:” field to the passed array of strings (which should be valid email addresses).
-
#bcc_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “Bcc:” field of the mail object header.
-
#bcc_addrs=(arg) ⇒ Object
Destructively set the to field of the “Bcc:” header to equal the passed in string.
- #body(to_charset = 'utf-8', &block) ⇒ Object
- #body=(str) ⇒ Object (also: #preamble=)
- #body_port ⇒ Object
-
#cc(default = nil) ⇒ Object
Returns who the email cc’d as an Array of email addresses as opposed to an Array of TMail::Address objects which is what Mail#to_addrs returns.
-
#cc=(*strs) ⇒ Object
Destructively sets the “Cc:” field to the passed array of strings (which should be valid email addresses).
-
#cc_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “Cc:” field of the mail object header.
-
#cc_addrs=(arg) ⇒ Object
Destructively set the to field of the “Cc:” header to equal the passed in string.
-
#charset(default = nil) ⇒ Object
Returns the character set of the email.
-
#charset=(str) ⇒ Object
Destructively sets the character set used by this mail object to the passed string, you should note though that this does nothing to the mail body, just changes the header value, you will need to transliterate the body as well to match whatever you put in this header value if you are changing character sets.
- #clear ⇒ Object
-
#content_type(default = nil) ⇒ Object
Returns the current “Content-Type” of the mail instance.
-
#create_forward ⇒ Object
Creates a new email in reply to self.
-
#create_reply ⇒ Object
Creates a new email in reply to self.
-
#date(default = nil) ⇒ Object
Returns the date of the email message as per the “date” header value or returns nil by default (if no date field exists).
-
#date=(time) ⇒ Object
Destructively sets the date of the mail object with the passed Time instance, returns a Time instance set to the date/time of the mail.
- #delete(key) ⇒ Object
- #delete_if ⇒ Object
- #delete_no_send_fields ⇒ Object
-
#destinations(default = nil) ⇒ Object
Returns an array of each destination in the email message including to: cc: or bcc:.
-
#disposition(default = nil) ⇒ Object
(also: #content_disposition)
Returns the content-disposition of the mail object, returns nil or the passed default value if given.
-
#disposition_param(name, default = nil) ⇒ Object
Returns the value of a parameter in an existing content-disposition header.
- #each(&block) ⇒ Object
-
#each_destination(&block) ⇒ Object
(also: #each_dest)
Yields a block of destination, yielding each as a string.
- #each_field(&block) ⇒ Object (also: #each_value)
-
#each_header ⇒ Object
(also: #each_pair)
Allows you to loop through each header in the TMail::Mail object in a block Example: @mail = ‘[email protected]’ @mail = ‘[email protected]’ @mail.each_header { |k,v| puts “#k = #v” } # => from = [email protected] # => to = [email protected].
- #each_header_name(&block) ⇒ Object (also: #each_key)
- #each_part(&block) ⇒ Object
- #epilogue ⇒ Object
- #epilogue=(str) ⇒ Object
-
#error_reply_addresses(default = nil) ⇒ Object
Returns the “sender” field as an array -> useful to find out who to send an error email to.
-
#friendly_from(default = nil) ⇒ Object
Returns the “friendly” human readable part of the address.
-
#from(default = nil) ⇒ Object
Returns who the email is from as an Array of email address strings instead to an Array of TMail::Address objects which is what Mail#from_addrs returns.
-
#from=(*strs) ⇒ Object
Destructively sets the “From:” field to the passed array of strings (which should be valid email addresses).
- #from_addr(default = nil) ⇒ Object
- #from_address(default = nil) ⇒ Object
- #from_address= ⇒ Object
-
#from_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “From:” field of the mail object header.
-
#from_addrs=(arg) ⇒ Object
Destructively set the to value of the “From:” header to equal the passed in string.
- #from_phrase(default = nil) ⇒ Object
- #has_attachments? ⇒ Boolean
- #header ⇒ Object
-
#header_string(name, default = nil) ⇒ Object
Allows you to query the mail object with a string to get the contents of the field you want.
-
#in_reply_to(default = nil) ⇒ Object
Returns the “In-Reply-To:” field contents as an array of this mail instance if it exists.
-
#in_reply_to=(*idstrs) ⇒ Object
Destructively sets the value of the “In-Reply-To:” field of an email.
-
#initialize(port = nil, conf = DEFAULT_CONFIG) ⇒ Mail
constructor
A new instance of Mail.
- #inspect ⇒ Object
- #key?(key) ⇒ Boolean (also: #include?, #has_key?)
- #keys ⇒ Object
-
#main_type(default = nil) ⇒ Object
Returns the current main type of the “Content-Type” of the mail instance.
-
#message_id(default = nil) ⇒ Object
Returns the message ID for this mail object instance.
-
#message_id=(str) ⇒ Object
Destructively sets the message ID of the mail object instance to the passed in string.
- #mime_encode ⇒ Object
- #mime_encode_binary(body) ⇒ Object
- #mime_encode_multipart(top = true) ⇒ Object
- #mime_encode_singlepart ⇒ Object
- #mime_encode_text(body) ⇒ Object
-
#mime_version(default = nil) ⇒ Object
Returns the listed MIME version of this email from the “Mime-Version:” header field.
- #mime_version=(m, opt = nil) ⇒ Object
-
#msgid ⇒ Object
identity & threading.
- #msgid= ⇒ Object
-
#multipart? ⇒ Boolean
Returns true if the Mail object is a multipart message.
- #ordered_each ⇒ Object
- #parts ⇒ Object
- #preamble ⇒ Object
- #quoted_body ⇒ Object
- #ready_to_send ⇒ Object
-
#references(default = nil) ⇒ Object
Returns the references of this email (prior messages relating to this message) as an array of message ID strings.
-
#references=(*strs) ⇒ Object
Destructively sets the value of the “References:” field of an email.
-
#reply_addresses(default = nil) ⇒ Object
Returns an array of reply to addresses that the Mail object has, or if the Mail message has no reply-to, returns an array of the Mail objects from addresses.
-
#reply_to(default = nil) ⇒ Object
Returns who the email is from as an Array of email address strings instead to an Array of TMail::Address objects which is what Mail#reply_to_addrs returns.
-
#reply_to=(*strs) ⇒ Object
Destructively sets the “Reply-To:” field to the passed array of strings (which should be valid email addresses).
-
#reply_to_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “Reply-To:” field of the mail object header.
-
#reply_to_addrs=(arg) ⇒ Object
Destructively set the to value of the “Reply-To:” header to equal the passed in argument.
- #send_text_to(smtp) ⇒ Object
- #send_to(smtp) ⇒ Object
- #send_to_0(smtp, from, to) ⇒ Object
-
#sender(default = nil) ⇒ Object
Returns who the sender of this mail is as string instead to an Array of TMail::Address objects which is what Mail#sender_addr returns.
-
#sender=(str) ⇒ Object
Destructively sets the “Sender:” field to the passed string (which should be a valid email address).
-
#sender_addr(default = nil) ⇒ Object
Return a TMail::Addresses instance of the “Sender:” field of the mail object header.
-
#sender_addr=(addr) ⇒ Object
Destructively set the to value of the “Sender:” header to equal the passed in argument.
-
#set_content_type(str, sub = nil, param = nil) ⇒ Object
(also: #content_type=)
Destructively sets the “Content-Type:” header field of this mail object.
-
#set_disposition(str, params = nil) ⇒ Object
(also: #disposition=, #set_content_disposition, #content_disposition=)
Allows you to set the content-disposition of the mail object.
-
#strftime(fmt, default = nil) ⇒ Object
Returns the time of the mail message formatted to your taste using a strftime format string.
- #sub_header(key, param) ⇒ Object
-
#sub_type(default = nil) ⇒ Object
Returns the current sub type of the “Content-Type” of the mail instance.
-
#subject(default = nil) ⇒ Object
(also: #quoted_subject)
Returns the subject of the mail instance.
-
#subject=(str) ⇒ Object
Destructively sets the passed string as the subject of the mail message.
-
#to(default = nil) ⇒ Object
Returns who the email is to as an Array of email addresses as opposed to an Array of TMail::Address objects which is what Mail#to_addrs returns.
-
#to=(*strs) ⇒ Object
Destructively sets the “To:” field to the passed array of strings (which should be valid email addresses).
-
#to_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “To:” field of the mail object header.
-
#to_addrs=(arg) ⇒ Object
Destructively set the to field of the “To:” header to equal the passed in string.
-
#transfer_encoding(default = nil) ⇒ Object
(also: #encoding, #content_transfer_encoding)
Returns the transfer encoding of the email.
-
#transfer_encoding=(str) ⇒ Object
(also: #encoding=, #content_transfer_encoding=)
Destructively sets the transfer encoding of the mail object to the passed string, you should note though that this does nothing to the mail body, just changes the header value, you will need to encode or decode the body as well to match whatever you put in this header value.
-
#type_param(name, default = nil) ⇒ Object
Returns the named type parameter as a string, from the “Content-Type:” header.
- #unquoted_body(to_charset = 'utf-8') ⇒ Object
- #value?(val) ⇒ Boolean (also: #has_value?)
- #values ⇒ Object
- #values_at(*args) ⇒ Object (also: #indexes, #indices)
- #write_back(eol = "\n", charset = 'e') ⇒ Object
Methods included from TextUtils
#atom_safe?, #decode_RFC2231, #decode_params, #join_domain, #message_id?, #mime_encoded?, #quote_atom, #quote_boundary, #quote_phrase, #quote_token, #time2str, #timezone_string_to_unixtime, #to_kcode, #token_safe?, #unquote
Methods included from StrategyInterface
#accept_strategy, create_dest, #decoded, #encoded
Constructor Details
#initialize(port = nil, conf = DEFAULT_CONFIG) ⇒ Mail
Returns a new instance of Mail.
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 77 def initialize( port = nil, conf = DEFAULT_CONFIG ) @port = port || StringPort.new @config = Config.to_config(conf) @header = {} @body_port = nil @body_parsed = false @epilogue = '' @parts = [] @port.ropen {|f| parse_header f parse_body f unless @port.reproducible? } end |
Instance Attribute Details
#port ⇒ Object (readonly)
Returns the value of attribute port.
93 94 95 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 93 def port @port end |
Class Method Details
.boundary ⇒ Object
129 130 131 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 129 def Mail.boundary ::TMail.new_boundary end |
.load(fname) ⇒ Object Also known as: load_from, loadfrom
64 65 66 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 64 def load( fname ) new(FilePort.new(fname)) end |
.msgid ⇒ Object
133 134 135 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 133 def Mail.msgid ::TMail. end |
.parse(str) ⇒ Object
71 72 73 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 71 def parse( str ) new(StringPort.new(str)) end |
Instance Method Details
#[](key) ⇒ Object Also known as: fetch
Returns a TMail::AddressHeader object of the field you are querying. Examples:
@mail['from'] #=> #<TMail::AddressHeader "[email protected]">
@mail['to'] #=> #<TMail::AddressHeader "[email protected]">
You can get the string value of this by passing “to_s” to the query: Example:
@mail['to'].to_s #=> "[email protected]"
190 191 192 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 190 def []( key ) @header[key.downcase] end |
#[]=(key, val) ⇒ Object Also known as: store
Allows you to set or delete TMail header objects at will. Eamples:
@mail = TMail::Mail.new
@mail['to'].to_s # => '[email protected]'
@mail['to'] = '[email protected]'
@mail['to'].to_s # => '[email protected]'
@mail.encoded # => "To: [email protected]\r\n\r\n"
@mail['to'] = nil
@mail['to'].to_s # => nil
@mail.encoded # => "\r\n"
Note: setting mail[] = nil actualy deletes the header field in question from the object, it does not just set the value of the hash to nil
213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 213 def []=( key, val ) dkey = key.downcase if val.nil? @header.delete dkey return nil end case val when String header = new_hf(key, val) when HeaderField ; when Array ALLOW_MULTIPLE.include? dkey or raise ArgumentError, "#{key}: Header must not be multiple" @header[dkey] = val return val else header = new_hf(key, val.to_s) end if ALLOW_MULTIPLE.include? dkey (@header[dkey] ||= []).push header else @header[dkey] = header end val end |
#accept(strategy) ⇒ Object
112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 112 def accept( strategy ) with_multipart_encoding(strategy) { ordered_each do |name, field| next if field.empty? strategy.header_name canonical(name) field.accept strategy strategy.puts end strategy.puts body_port().ropen {|r| strategy.write r.read } } end |
#add_date ⇒ Object
88 89 90 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 88 def add_date self.date = Time.now end |
#add_message_id(fqdn = nil) ⇒ Object
84 85 86 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 84 def ( fqdn = nil ) self. = ::TMail::(fqdn) end |
#attachment?(part) ⇒ Boolean
19 20 21 22 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/attachments.rb', line 19 def (part) (part['content-disposition'] && part['content-disposition'].disposition == "attachment") || part.header['content-type'].main_type != "text" end |
#attachments ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/attachments.rb', line 24 def if multipart? parts.collect { |part| if part.multipart? part. elsif (part) content = part.body # unquoted automatically by TMail#body file_name = (part['content-location'] && part['content-location'].body) || part.sub_header("content-type", "name") || part.sub_header("content-disposition", "filename") next if file_name.blank? || content.blank? = Attachment.new(content) .original_filename = file_name.strip .content_type = part.content_type end }.flatten.compact end end |
#base64_decode! ⇒ Object Also known as: base64_decode
Destructively convert the Mail object’s body into a Base64 decoded email returning the modified Mail object
983 984 985 986 987 988 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 983 def base64_decode! if /base64/i === self.transfer_encoding('') store 'Content-Transfer-Encoding', '8bit' self.body = Base64.decode(self.body, @config.strict_base64decode?) end end |
#base64_encode! ⇒ Object Also known as: base64_encode
Destructively convert the Mail object’s body into a Base64 encoded email returning the modified Mail object
971 972 973 974 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 971 def base64_encode! store 'Content-Transfer-Encoding', 'Base64' self.body = Base64.folding_encode(self.body) end |
#bcc(default = nil) ⇒ Object
Returns who the email bcc’d as an Array of email addresses as opposed to an Array of TMail::Address objects which is what Mail#to_addrs returns
Example:
mail = TMail::Mail.new
mail.bcc = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.bcc #=> ["[email protected]", "[email protected]"]
292 293 294 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 292 def bcc( default = nil ) addrs2specs(bcc_addrs(nil)) || default end |
#bcc=(*strs) ⇒ Object
Destructively sets the “Bcc:” field to the passed array of strings (which should be valid email addresses)
Example:
mail = TMail::Mail.new
mail.bcc = ["[email protected]", "Mikel <[email protected]>"]
mail.bcc #=> ["[email protected]", "[email protected]"]
mail['bcc'].to_s #=> "[email protected], Mikel <[email protected]>"
331 332 333 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 331 def bcc=( *strs ) set_string_array_attr 'Bcc', strs end |
#bcc_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “Bcc:” field of the mail object header.
If the “Bcc:” field does not exist, will return nil by default or the value you pass as the optional parameter.
Example:
mail = TMail::Mail.new
mail.bcc_addrs #=> nil
mail.bcc_addrs([]) #=> []
mail.bcc = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.bcc_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
210 211 212 213 214 215 216 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 210 def bcc_addrs( default = nil ) if h = @header['bcc'] h.addrs else default end end |
#bcc_addrs=(arg) ⇒ Object
Destructively set the to field of the “Bcc:” header to equal the passed in string.
TMail will parse your contents and turn each valid email address into a TMail::Address object before assigning it to the mail message.
Example:
mail = TMail::Mail.new
mail.bcc = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.bcc_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
256 257 258 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 256 def bcc_addrs=( arg ) set_addrfield 'bcc', arg end |
#body(to_charset = 'utf-8', &block) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/quoting.rb', line 36 def body(to_charset = 'utf-8', &block) = block || Proc.new { |file_name| "Attachment: #{file_name}\n" } if multipart? parts.collect { |part| header = part["content-type"] if part.multipart? part.body(to_charset, &) elsif header.nil? "" elsif !(part) part.unquoted_body(to_charset) else .call(header["name"] || "(unnamed)") end }.join else unquoted_body(to_charset) end end |
#body=(str) ⇒ Object Also known as: preamble=
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 404 def body=( str ) # Sets the body of the email to a new (encoded) string. # # We also reparses the email if the body is ever reassigned, this is a performance hit, however when # you assign the body, you usually want to be able to make sure that you can access the attachments etc. # # Usage: # # mail.body = "Hello, this is\nthe body text" # # => "Hello, this is\nthe body" # mail.body # # => "Hello, this is\nthe body" @body_parsed = false parse_body(StringInput.new(str)) parse_body @body_port.wopen {|f| f.write str } str end |
#body_port ⇒ Object
388 389 390 391 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 388 def body_port parse_body @body_port end |
#cc(default = nil) ⇒ Object
Returns who the email cc’d as an Array of email addresses as opposed to an Array of TMail::Address objects which is what Mail#to_addrs returns
Example:
mail = TMail::Mail.new
mail.cc = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.cc #=> ["[email protected]", "[email protected]"]
280 281 282 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 280 def cc( default = nil ) addrs2specs(cc_addrs(nil)) || default end |
#cc=(*strs) ⇒ Object
Destructively sets the “Cc:” field to the passed array of strings (which should be valid email addresses)
Example:
mail = TMail::Mail.new
mail.cc = ["[email protected]", "Mikel <[email protected]>"]
mail.cc #=> ["[email protected]", "[email protected]"]
mail['cc'].to_s #=> "[email protected], Mikel <[email protected]>"
318 319 320 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 318 def cc=( *strs ) set_string_array_attr 'Cc', strs end |
#cc_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “Cc:” field of the mail object header.
If the “Cc:” field does not exist, will return nil by default or the value you pass as the optional parameter.
Example:
mail = TMail::Mail.new
mail.cc_addrs #=> nil
mail.cc_addrs([]) #=> []
mail.cc = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.cc_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
190 191 192 193 194 195 196 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 190 def cc_addrs( default = nil ) if h = @header['cc'] h.addrs else default end end |
#cc_addrs=(arg) ⇒ Object
Destructively set the to field of the “Cc:” header to equal the passed in string.
TMail will parse your contents and turn each valid email address into a TMail::Address object before assigning it to the mail message.
Example:
mail = TMail::Mail.new
mail.cc = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.cc_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
242 243 244 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 242 def cc_addrs=( arg ) set_addrfield 'cc', arg end |
#charset(default = nil) ⇒ Object
Returns the character set of the email. Returns nil if no encoding set or returns whatever default you pass as a parameter - note passing the parameter does NOT change the mail object in any way.
Example:
mail = TMail::Mail.load("path_to/utf8_email")
mail.charset #=> "UTF-8"
mail = TMail::Mail.new
mail.charset #=> nil
mail.charset("US-ASCII") #=> "US-ASCII"
837 838 839 840 841 842 843 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 837 def charset( default = nil ) if h = @header['content-type'] h['charset'] or default else default end end |
#charset=(str) ⇒ Object
Destructively sets the character set used by this mail object to the passed string, you should note though that this does nothing to the mail body, just changes the header value, you will need to transliterate the body as well to match whatever you put in this header value if you are changing character sets.
Example:
mail = TMail::Mail.new
mail.charset #=> nil
mail.charset = "UTF-8"
mail.charset #=> "UTF-8"
856 857 858 859 860 861 862 863 864 865 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 856 def charset=( str ) if str if h = @header[ 'content-type' ] h['charset'] = str else store 'Content-Type', "text/plain; charset=#{str}" end end str end |
#clear ⇒ Object
295 296 297 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 295 def clear @header.clear end |
#content_type(default = nil) ⇒ Object
Returns the current “Content-Type” of the mail instance.
If the content_type field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.content_type #=> nil
mail.content_type([]) #=> []
mail = TMail::Mail.load("../test/fixtures/raw_email")
mail.content_type #=> "text/plain"
720 721 722 723 724 725 726 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 720 def content_type( default = nil ) if h = @header['content-type'] h.content_type || default else default end end |
#create_forward ⇒ Object
Creates a new email in reply to self. Sets the In-Reply-To and References headers for you automagically.
Example:
mail = TMail::Mail.load("my_email")
forward_email = mail.create_forward
forward_email.class #=> TMail::Mail
forward_email.content_type #=> "multipart/mixed"
forward_email.body #=> "Attachment: (unnamed)"
forward_email.encoded #=> Returns the original email as a MIME attachment
1083 1084 1085 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 1083 def create_forward setup_forward create_empty_mail() end |
#create_reply ⇒ Object
Creates a new email in reply to self. Sets the In-Reply-To and References headers for you automagically.
Example:
mail = TMail::Mail.load("my_email")
reply_email = mail.create_reply
reply_email.class #=> TMail::Mail
reply_email.references #=> ["<[email protected]>"]
reply_email.in_reply_to #=> ["<[email protected]>"]
486 487 488 489 490 491 492 493 494 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 486 def create_reply mail = TMail::Mail.parse('') mail.subject = 'Re: ' + subject('').sub(/\A(?:\[[^\]]+\])?(?:\s*Re:)*\s*/i, '') mail.to_addrs = reply_addresses([]) mail.in_reply_to = [(nil)].compact mail.references = references([]) + [(nil)].compact mail.mime_version = '1.0' mail end |
#date(default = nil) ⇒ Object
Returns the date of the email message as per the “date” header value or returns nil by default (if no date field exists).
You can also pass whatever default you want into this method and it will return that instead of nil if there is no date already set.
99 100 101 102 103 104 105 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 99 def date( default = nil ) if h = @header['date'] h.date else default end end |
#date=(time) ⇒ Object
Destructively sets the date of the mail object with the passed Time instance, returns a Time instance set to the date/time of the mail
Example:
now = Time.now
mail.date = now
mail.date #=> Sat Nov 03 18:47:50 +1100 2007
mail.date.class #=> Time
132 133 134 135 136 137 138 139 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 132 def date=( time ) if time store 'Date', time2str(time) else @header.delete 'date' end time end |
#delete(key) ⇒ Object
299 300 301 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 299 def delete( key ) @header.delete key.downcase end |
#delete_if ⇒ Object
303 304 305 306 307 308 309 310 311 312 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 303 def delete_if @header.delete_if do |key,val| if Array === val val.delete_if {|v| yield key, v } val.empty? else yield key, val end end end |
#delete_no_send_fields ⇒ Object
77 78 79 80 81 82 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 77 def delete_no_send_fields NOSEND_FIELDS.each do |nm| delete nm end delete_if {|n,v| v.empty? } end |
#destinations(default = nil) ⇒ Object
Returns an array of each destination in the email message including to: cc: or bcc:
Example:
mail.to = "Mikel <[email protected]>"
mail.cc = "Trans <[email protected]>"
mail.bcc = "bob <[email protected]>"
mail.destinations #=> ["[email protected]", "[email protected]", "[email protected]"]
1003 1004 1005 1006 1007 1008 1009 1010 1011 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 1003 def destinations( default = nil ) ret = [] %w( to cc bcc ).each do |nm| if h = @header[nm] h.addrs.each {|i| ret.push i.address } end end ret.empty? ? default : ret end |
#disposition(default = nil) ⇒ Object Also known as: content_disposition
Returns the content-disposition of the mail object, returns nil or the passed default value if given
Example:
mail = TMail::Mail.load("path_to/raw_mail_with_attachment")
mail.disposition #=> "attachment"
mail = TMail::Mail.load("path_to/plain_simple_email")
mail.disposition #=> nil
mail.disposition(false) #=> false
918 919 920 921 922 923 924 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 918 def disposition( default = nil ) if h = @header['content-disposition'] h.disposition || default else default end end |
#disposition_param(name, default = nil) ⇒ Object
Returns the value of a parameter in an existing content-disposition header
Example:
mail.set_disposition("attachment", {:filename => "test.rb"})
mail['content-disposition'].to_s #=> "attachment; filename=test.rb"
mail.disposition_param("filename") #=> "test.rb"
mail.disposition_param("missing_param_key") #=> nil
mail.disposition_param("missing_param_key", false) #=> false
mail.disposition_param("missing_param_key", "Nothing to see here") #=> "Nothing to see here"
961 962 963 964 965 966 967 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 961 def disposition_param( name, default = nil ) if h = @header['content-disposition'] h[name] || default else default end end |
#each(&block) ⇒ Object
393 394 395 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 393 def each( &block ) body_port().ropen {|f| f.each(&block) } end |
#each_destination(&block) ⇒ Object Also known as: each_dest
Yields a block of destination, yielding each as a string.
(from the destinations example)
mail.each_destination { |d| puts "#{d.class}: #{d}" }
String: [email protected]
String: [email protected]
String: [email protected]
1019 1020 1021 1022 1023 1024 1025 1026 1027 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 1019 def each_destination( &block ) destinations([]).each do |i| if Address === i yield i else i.each(&block) end end end |
#each_field(&block) ⇒ Object Also known as: each_value
266 267 268 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 266 def each_field( &block ) @header.values.flatten.each(&block) end |
#each_header ⇒ Object Also known as: each_pair
Allows you to loop through each header in the TMail::Mail object in a block Example:
@mail['to'] = '[email protected]'
@mail['from'] = '[email protected]'
@mail.each_header { |k,v| puts "#{k} = #{v}" }
# => from = [email protected]
# => to = [email protected]
252 253 254 255 256 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 252 def each_header @header.each do |key, val| [val].flatten.each {|v| yield key, v } end end |
#each_header_name(&block) ⇒ Object Also known as: each_key
260 261 262 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 260 def each_header_name( &block ) @header.each_key(&block) end |
#each_part(&block) ⇒ Object
442 443 444 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 442 def each_part( &block ) parts().each(&block) end |
#epilogue ⇒ Object
426 427 428 429 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 426 def epilogue parse_body @epilogue.dup end |
#epilogue=(str) ⇒ Object
431 432 433 434 435 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 431 def epilogue=( str ) parse_body @epilogue = str str end |
#error_reply_addresses(default = nil) ⇒ Object
Returns the “sender” field as an array -> useful to find out who to send an error email to.
1047 1048 1049 1050 1051 1052 1053 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 1047 def error_reply_addresses( default = nil ) if s = sender(nil) [s] else from_addrs(default) end end |
#friendly_from(default = nil) ⇒ Object
Returns the “friendly” human readable part of the address
Example:
mail = TMail::Mail.new
mail.from = "Mikel Lindsaar <[email protected]>"
mail.friendly_from #=> "Mikel Lindsaar"
403 404 405 406 407 408 409 410 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 403 def friendly_from( default = nil ) h = @header['from'] a, = h.addrs return default unless a return a.phrase if a.phrase return h.comments.join(' ') unless h.comments.empty? a.spec end |
#from(default = nil) ⇒ Object
Returns who the email is from as an Array of email address strings instead to an Array of TMail::Address objects which is what Mail#from_addrs returns
Example:
mail = TMail::Mail.new
mail.from = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.from #=> ["[email protected]", "[email protected]"]
379 380 381 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 379 def from( default = nil ) addrs2specs(from_addrs(nil)) || default end |
#from=(*strs) ⇒ Object
Destructively sets the “From:” field to the passed array of strings (which should be valid email addresses)
Example:
mail = TMail::Mail.new
mail.from = ["[email protected]", "Mikel <[email protected]>"]
mail.from #=> ["[email protected]", "[email protected]"]
mail['from'].to_s #=> "[email protected], Mikel <[email protected]>"
392 393 394 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 392 def from=( *strs ) set_string_array_attr 'From', strs end |
#from_addr(default = nil) ⇒ Object
57 58 59 60 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 57 def from_addr( default = nil ) addr, = from_addrs(nil) addr || default end |
#from_address(default = nil) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 62 def from_address( default = nil ) if a = from_addr(nil) a.spec else default end end |
#from_address= ⇒ Object
70 71 72 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 70 def from_addrs=( arg ) set_addrfield 'from', arg end |
#from_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “From:” field of the mail object header.
If the “From:” field does not exist, will return nil by default or the value you pass as the optional parameter.
Example:
mail = TMail::Mail.new
mail.from_addrs #=> nil
mail.from_addrs([]) #=> []
mail.from = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.from_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
194 195 196 197 198 199 200 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 194 def from_addrs( default = nil ) if h = @header['from'] h.addrs else default end end |
#from_addrs=(arg) ⇒ Object
Destructively set the to value of the “From:” header to equal the passed in string.
TMail will parse your contents and turn each valid email address into a TMail::Address object before assigning it to the mail message.
Example:
mail = TMail::Mail.new
mail.from_addrs = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.from_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
367 368 369 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 367 def from_addrs=( arg ) set_addrfield 'from', arg end |
#from_phrase(default = nil) ⇒ Object
72 73 74 75 76 77 78 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 72 def from_phrase( default = nil ) if a = from_addr(nil) a.phrase else default end end |
#has_attachments? ⇒ Boolean
15 16 17 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/attachments.rb', line 15 def multipart? && parts.any? { |part| (part) } end |
#header ⇒ Object
178 179 180 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 178 def header @header.dup end |
#header_string(name, default = nil) ⇒ Object
Allows you to query the mail object with a string to get the contents of the field you want.
Returns a string of the exact contnts of the field
mail.from = "mikel <[email protected]>"
mail.header_string("From") #=> "mikel <[email protected]>"
49 50 51 52 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 49 def header_string( name, default = nil ) h = @header[name.downcase] or return default h.to_s end |
#in_reply_to(default = nil) ⇒ Object
Returns the “In-Reply-To:” field contents as an array of this mail instance if it exists
If the in_reply_to field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.in_reply_to #=> nil
mail.in_reply_to([]) #=> []
TMail::Mail.load("../test/fixtures/raw_email_reply")
mail.in_reply_to #=> ["<[email protected]>"]
616 617 618 619 620 621 622 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 616 def in_reply_to( default = nil ) if h = @header['in-reply-to'] h.ids else default end end |
#in_reply_to=(*idstrs) ⇒ Object
Destructively sets the value of the “In-Reply-To:” field of an email.
Accepts an array of a single string of a message id
Example:
mail = TMail::Mail.new
mail.in_reply_to = ["<[email protected]>"]
mail.in_reply_to #=> ["<[email protected]>"]
633 634 635 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 633 def in_reply_to=( *idstrs ) set_string_array_attr 'In-Reply-To', idstrs end |
#inspect ⇒ Object
95 96 97 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 95 def inspect "\#<#{self.class} port=#{@port.inspect} bodyport=#{@body_port.inspect}>" end |
#key?(key) ⇒ Boolean Also known as: include?, has_key?
318 319 320 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 318 def key?( key ) @header.key? key.downcase end |
#keys ⇒ Object
314 315 316 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 314 def keys @header.keys end |
#main_type(default = nil) ⇒ Object
Returns the current main type of the “Content-Type” of the mail instance.
If the content_type field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.main_type #=> nil
mail.main_type([]) #=> []
mail = TMail::Mail.load("../test/fixtures/raw_email")
mail.main_type #=> "text"
740 741 742 743 744 745 746 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 740 def main_type( default = nil ) if h = @header['content-type'] h.main_type || default else default end end |
#message_id(default = nil) ⇒ Object
Returns the message ID for this mail object instance.
If the message_id field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail. #=> nil
mail.(TMail.) #=> "<[email protected]>"
mail. = TMail.
mail. #=> "<[email protected]>"
294 295 296 297 298 299 300 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 294 def ( default = nil ) if h = @header['message-id'] h.id || default else default end end |
#message_id=(str) ⇒ Object
600 601 602 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 600 def ( str ) set_string_attr 'Message-Id', str end |
#mime_encode ⇒ Object
92 93 94 95 96 97 98 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 92 def mime_encode if parts.empty? mime_encode_singlepart else mime_encode_multipart true end end |
#mime_encode_binary(body) ⇒ Object
116 117 118 119 120 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 116 def mime_encode_binary( body ) self.body = [body].pack('m') self.set_content_type 'application', 'octet-stream' self.encoding = 'Base64' end |
#mime_encode_multipart(top = true) ⇒ Object
122 123 124 125 126 127 128 129 130 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 122 def mime_encode_multipart( top = true ) self.mime_version = '1.0' if top self.set_content_type 'multipart', 'mixed' e = encoding(nil) if e and not /\A(?:7bit|8bit|binary)\z/i === e raise ArgumentError, 'using C.T.Encoding with multipart mail is not permitted' end end |
#mime_encode_singlepart ⇒ Object
100 101 102 103 104 105 106 107 108 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 100 def mime_encode_singlepart self.mime_version = '1.0' b = body if NKF.guess(b) != NKF::BINARY mime_encode_text b else mime_encode_binary b end end |
#mime_encode_text(body) ⇒ Object
110 111 112 113 114 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 110 def mime_encode_text( body ) self.body = NKF.nkf('-j -m0', body) self.set_content_type 'text', 'plain', {'charset' => 'iso-2022-jp'} self.encoding = '7bit' end |
#mime_version(default = nil) ⇒ Object
Returns the listed MIME version of this email from the “Mime-Version:” header field
If the mime_version field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.mime_version #=> nil
mail.mime_version([]) #=> []
mail = TMail::Mail.load("../test/fixtures/raw_email")
mail.mime_version #=> "1.0"
335 336 337 338 339 340 341 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 335 def mime_version( default = nil ) if h = @header['mime-version'] h.version || default else default end end |
#mime_version=(m, opt = nil) ⇒ Object
343 344 345 346 347 348 349 350 351 352 353 354 355 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 343 def mime_version=( m, opt = nil ) if opt if h = @header['mime-version'] h.major = m h.minor = opt else store 'Mime-Version', "#{m}.#{opt}" end else store 'Mime-Version', m end m end |
#msgid ⇒ Object
identity & threading
80 81 82 83 84 85 86 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 80 def ( default = nil ) if h = @header['message-id'] h.id || default else default end end |
#msgid= ⇒ Object
81 82 83 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 81 def ( str ) set_string_attr 'Message-Id', str end |
#multipart? ⇒ Boolean
Returns true if the Mail object is a multipart message
1056 1057 1058 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 1056 def multipart? main_type('').downcase == 'multipart' end |
#ordered_each ⇒ Object
283 284 285 286 287 288 289 290 291 292 293 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 283 def ordered_each list = @header.keys FIELD_ORDER.each do |name| if list.delete(name) [@header[name]].flatten.each {|v| yield name, v } end end list.each do |name| [@header[name]].flatten.each {|v| yield name, v } end end |
#parts ⇒ Object
437 438 439 440 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 437 def parts parse_body @parts end |
#preamble ⇒ Object
423 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 423 alias preamble body |
#quoted_body ⇒ Object
397 398 399 400 401 402 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 397 def quoted_body parse_body @body_port.ropen {|f| return f.read } end |
#ready_to_send ⇒ Object
66 67 68 69 70 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 66 def ready_to_send delete_no_send_fields add_date end |
#references(default = nil) ⇒ Object
Returns the references of this email (prior messages relating to this message) as an array of message ID strings. Useful when you are trying to thread an email.
If the references field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.references #=> nil
mail.references([]) #=> []
mail = TMail::Mail.load("../test/fixtures/raw_email_reply")
mail.references #=> ["<[email protected]>", "<[email protected]>"]
651 652 653 654 655 656 657 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 651 def references( default = nil ) if h = @header['references'] h.refs else default end end |
#references=(*strs) ⇒ Object
Destructively sets the value of the “References:” field of an email.
Accepts an array of strings of message IDs
Example:
mail = TMail::Mail.new
mail.references = ["<[email protected]>"]
mail.references #=> ["<[email protected]>"]
668 669 670 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 668 def references=( *strs ) set_string_array_attr 'References', strs end |
#reply_addresses(default = nil) ⇒ Object
Returns an array of reply to addresses that the Mail object has, or if the Mail message has no reply-to, returns an array of the Mail objects from addresses. Else returns the default which can either be passed as a parameter or defaults to nil
Example:
mail.from = "Mikel <[email protected]>"
mail.reply_to = nil
mail.reply_addresses #=> [""]
1041 1042 1043 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 1041 def reply_addresses( default = nil ) reply_to_addrs(nil) or from_addrs(nil) or default end |
#reply_to(default = nil) ⇒ Object
Returns who the email is from as an Array of email address strings instead to an Array of TMail::Address objects which is what Mail#reply_to_addrs returns
Example:
mail = TMail::Mail.new
mail.reply_to = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.reply_to #=> ["[email protected]", "[email protected]"]
454 455 456 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 454 def reply_to( default = nil ) addrs2specs(reply_to_addrs(nil)) || default end |
#reply_to=(*strs) ⇒ Object
Destructively sets the “Reply-To:” field to the passed array of strings (which should be valid email addresses)
Example:
mail = TMail::Mail.new
mail.reply_to = ["[email protected]", "Mikel <[email protected]>"]
mail.reply_to #=> ["[email protected]", "[email protected]"]
mail['reply_to'].to_s #=> "[email protected], Mikel <[email protected]>"
467 468 469 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 467 def reply_to=( *strs ) set_string_array_attr 'Reply-To', strs end |
#reply_to_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “Reply-To:” field of the mail object header.
If the “Reply-To:” field does not exist, will return nil by default or the value you pass as the optional parameter.
Example:
mail = TMail::Mail.new
mail.reply_to_addrs #=> nil
mail.reply_to_addrs([]) #=> []
mail.reply_to = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.reply_to_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
424 425 426 427 428 429 430 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 424 def reply_to_addrs( default = nil ) if h = @header['reply-to'] h.addrs else default end end |
#reply_to_addrs=(arg) ⇒ Object
Destructively set the to value of the “Reply-To:” header to equal the passed in argument.
TMail will parse your contents and turn each valid email address into a TMail::Address object before assigning it to the mail message.
Example:
mail = TMail::Mail.new
mail.reply_to_addrs = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.reply_to_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
442 443 444 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 442 def reply_to_addrs=( arg ) set_addrfield 'reply-to', arg end |
#send_text_to(smtp) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 45 def send_text_to( smtp ) do_send_to(smtp) do ready_to_send mime_encode end end |
#send_to(smtp) ⇒ Object
39 40 41 42 43 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 39 def send_to( smtp ) do_send_to(smtp) do ready_to_send end end |
#send_to_0(smtp, from, to) ⇒ Object
60 61 62 63 64 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/net.rb', line 60 def send_to_0( smtp, from, to ) smtp.ready(from, to) do |f| encoded "\r\n", 'j', f, '' end end |
#sender(default = nil) ⇒ Object
Returns who the sender of this mail is as string instead to an Array of TMail::Address objects which is what Mail#sender_addr returns
Example:
mail = TMail::Mail.new
mail.sender = "Mikel <[email protected]>"
mail.sender #=> "[email protected]"
517 518 519 520 521 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 517 def sender( default ) f = @header['sender'] or return default a = f.addr or return default a.spec end |
#sender=(str) ⇒ Object
Destructively sets the “Sender:” field to the passed string (which should be a valid email address)
Example:
mail = TMail::Mail.new
mail.sender = "[email protected]"
mail.sender #=> "[email protected]"
mail['sender'].to_s #=> "[email protected]"
532 533 534 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 532 def sender=( str ) set_string_attr 'Sender', str end |
#sender_addr(default = nil) ⇒ Object
Return a TMail::Addresses instance of the “Sender:” field of the mail object header.
If the “Sender:” field does not exist, will return nil by default or the value you pass as the optional parameter.
Example:
mail = TMail::Mail.new
mail.sender #=> nil
mail.sender([]) #=> []
mail.sender = "Mikel <[email protected]>"
mail.reply_to_addrs #=> [#<TMail::Address [email protected]>]
483 484 485 486 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 483 def sender_addr( default = nil ) f = @header['sender'] or return default f.addr or return default end |
#sender_addr=(addr) ⇒ Object
Destructively set the to value of the “Sender:” header to equal the passed in argument.
TMail will parse your contents and turn each valid email address into a TMail::Address object before assigning it to the mail message.
Example:
mail = TMail::Mail.new
mail.sender_addrs = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.sender_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
498 499 500 501 502 503 504 505 506 507 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 498 def sender_addr=( addr ) if addr h = HeaderField.internal_new('sender', @config) h.addr = addr @header['sender'] = h else @header.delete 'sender' end addr end |
#set_content_type(str, sub = nil, param = nil) ⇒ Object Also known as: content_type=
Destructively sets the “Content-Type:” header field of this mail object
Allows you to set the main type, sub type as well as parameters to the field. The main type and sub type need to be a string.
The optional params hash can be passed with keys as symbols and values as a string, or strings as keys and values.
Example:
mail = TMail::Mail.new
mail.set_content_type("text", "plain")
mail.to_s #=> "Content-Type: text/plain\n\n"
mail.set_content_type("text", "plain", {:charset => "EUC-KR", :format => "flowed"})
mail.to_s #=> "Content-Type: text/plain; charset=EUC-KR; format=flowed\n\n"
mail.set_content_type("text", "plain", {"charset" => "EUC-KR", "format" => "flowed"})
mail.to_s #=> "Content-Type: text/plain; charset=EUC-KR; format=flowed\n\n"
787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 787 def set_content_type( str, sub = nil, param = nil ) if sub main, sub = str, sub else main, sub = str.split(%r</>, 2) raise ArgumentError, "sub type missing: #{str.inspect}" unless sub end if h = @header['content-type'] h.main_type = main h.sub_type = sub h.params.clear else store 'Content-Type', "#{main}/#{sub}" end @header['content-type'].params.replace param if param str end |
#set_disposition(str, params = nil) ⇒ Object Also known as: disposition=, set_content_disposition, content_disposition=
Allows you to set the content-disposition of the mail object. Accepts a type and a hash of parameters.
Example:
mail.set_disposition("attachment", {:filename => "test.rb"})
mail.disposition #=> "attachment"
mail['content-disposition'].to_s #=> "attachment; filename=test.rb"
936 937 938 939 940 941 942 943 944 945 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 936 def set_disposition( str, params = nil ) if h = @header['content-disposition'] h.disposition = str h.params.clear else store('Content-Disposition', str) h = @header['content-disposition'] end h.params.replace params if params end |
#strftime(fmt, default = nil) ⇒ Object
Returns the time of the mail message formatted to your taste using a strftime format string. If no date set returns nil by default or whatever value you pass as the second optional parameter.
time = Time.now # (on Nov 16 2007)
mail.date = time
mail.strftime("%D") #=> "11/16/07"
148 149 150 151 152 153 154 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 148 def strftime( fmt, default = nil ) if t = date t.strftime(fmt) else default end end |
#sub_header(key, param) ⇒ Object
194 195 196 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 194 def sub_header(key, param) (hdr = self[key]) ? hdr[param] : nil end |
#sub_type(default = nil) ⇒ Object
Returns the current sub type of the “Content-Type” of the mail instance.
If the content_type field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.sub_type #=> nil
mail.sub_type([]) #=> []
mail = TMail::Mail.load("../test/fixtures/raw_email")
mail.sub_type #=> "plain"
760 761 762 763 764 765 766 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 760 def sub_type( default = nil ) if h = @header['content-type'] h.sub_type || default else default end end |
#subject(default = nil) ⇒ Object Also known as: quoted_subject
Returns the subject of the mail instance.
If the subject field does not exist, returns nil by default or you can pass in as the parameter for what you want the default value to be.
Example:
mail = TMail::Mail.new
mail.subject #=> nil
mail.subject("") #=> ""
mail.subject = "Hello"
mail.subject #=> "Hello"
276 277 278 279 280 281 282 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 276 def subject( default = nil ) if h = @header['subject'] h.body else default end end |
#subject=(str) ⇒ Object
567 568 569 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 567 def subject=( str ) set_string_attr 'Subject', str end |
#to(default = nil) ⇒ Object
Returns who the email is to as an Array of email addresses as opposed to an Array of TMail::Address objects which is what Mail#to_addrs returns
Example:
mail = TMail::Mail.new
mail.to = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.to #=> ["[email protected]", "[email protected]"]
268 269 270 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 268 def to( default = nil ) addrs2specs(to_addrs(nil)) || default end |
#to=(*strs) ⇒ Object
Destructively sets the “To:” field to the passed array of strings (which should be valid email addresses)
Example:
mail = TMail::Mail.new
mail.to = ["[email protected]", "Mikel <[email protected]>"]
mail.to #=> ["[email protected]", "[email protected]"]
mail['to'].to_s #=> "[email protected], Mikel <[email protected]>"
305 306 307 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 305 def to=( *strs ) set_string_array_attr 'To', strs end |
#to_addrs(default = nil) ⇒ Object
Return a TMail::Addresses instance for each entry in the “To:” field of the mail object header.
If the “To:” field does not exist, will return nil by default or the value you pass as the optional parameter.
Example:
mail = TMail::Mail.new
mail.to_addrs #=> nil
mail.to_addrs([]) #=> []
mail.to = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.to_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
129 130 131 132 133 134 135 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/facade.rb', line 129 def to_addrs( default = nil ) if h = @header['to'] h.addrs else default end end |
#to_addrs=(arg) ⇒ Object
Destructively set the to field of the “To:” header to equal the passed in string.
TMail will parse your contents and turn each valid email address into a TMail::Address object before assigning it to the mail message.
Example:
mail = TMail::Mail.new
mail.to = "Mikel <[email protected]>, another Mikel <[email protected]>"
mail.to_addrs #=> [#<TMail::Address [email protected]>, #<TMail::Address [email protected]>]
228 229 230 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 228 def to_addrs=( arg ) set_addrfield 'to', arg end |
#transfer_encoding(default = nil) ⇒ Object Also known as: encoding, content_transfer_encoding
Returns the transfer encoding of the email. Returns nil if no encoding set or returns whatever default you pass as a parameter - note passing the parameter does NOT change the mail object in any way.
Example:
mail = TMail::Mail.load("path_to/base64_encoded_email")
mail.transfer_encoding #=> "base64"
mail = TMail::Mail.new
mail.transfer_encoding #=> nil
mail.transfer_encoding("base64") #=> "base64"
879 880 881 882 883 884 885 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 879 def transfer_encoding( default = nil ) if h = @header['content-transfer-encoding'] h.encoding || default else default end end |
#transfer_encoding=(str) ⇒ Object Also known as: encoding=, content_transfer_encoding=
Destructively sets the transfer encoding of the mail object to the passed string, you should note though that this does nothing to the mail body, just changes the header value, you will need to encode or decode the body as well to match whatever you put in this header value.
Example:
mail = TMail::Mail.new
mail.transfer_encoding #=> nil
mail.transfer_encoding = "base64"
mail.transfer_encoding #=> "base64"
898 899 900 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 898 def transfer_encoding=( str ) set_string_attr 'Content-Transfer-Encoding', str end |
#type_param(name, default = nil) ⇒ Object
Returns the named type parameter as a string, from the “Content-Type:” header.
Example:
mail = TMail::Mail.new
mail.type_param("charset") #=> nil
mail.type_param("charset", []) #=> []
mail.set_content_type("text", "plain", {:charset => "EUC-KR", :format => "flowed"})
mail.type_param("charset") #=> "EUC-KR"
mail.type_param("format") #=> "flowed"
817 818 819 820 821 822 823 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/interface.rb', line 817 def type_param( name, default = nil ) if h = @header['content-type'] h[name] || default else default end end |
#unquoted_body(to_charset = 'utf-8') ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/quoting.rb', line 12 def unquoted_body(to_charset = 'utf-8') from_charset = sub_header("content-type", "charset") case (content_transfer_encoding || "7bit").downcase when "quoted-printable" # the default charset is set to iso-8859-1 instead of 'us-ascii'. # This is needed as many mailer do not set the charset but send in ISO. This is only used if no charset is set. if !from_charset.blank? && from_charset.downcase == 'us-ascii' from_charset = 'iso-8859-1' end Unquoter.unquote_quoted_printable_and_convert_to(quoted_body, to_charset, from_charset, true) when "base64" Unquoter.unquote_base64_and_convert_to(quoted_body, to_charset, from_charset) when "7bit", "8bit" Unquoter.convert_to(quoted_body, to_charset, from_charset) when "binary" quoted_body else quoted_body end end |
#value?(val) ⇒ Boolean Also known as: has_value?
45 46 47 48 49 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 45 def value?( val ) HeaderField === val or return false [ @header[val.name.downcase] ].flatten.include? val end |
#values ⇒ Object
39 40 41 42 43 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/obsolete.rb', line 39 def values ret = [] each_field {|v| ret.push v } ret end |
#values_at(*args) ⇒ Object Also known as: indexes, indices
322 323 324 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 322 def values_at( *args ) args.map {|k| @header[k.downcase] }.flatten end |
#write_back(eol = "\n", charset = 'e') ⇒ Object
107 108 109 110 |
# File 'lib/action_mailer/vendor/tmail-1.2.1/tmail/mail.rb', line 107 def write_back( eol = "\n", charset = 'e' ) parse_body @port.wopen {|stream| encoded eol, charset, stream } end |