Class: CircularMail::HeaderField
- Inherits:
-
Object
- Object
- CircularMail::HeaderField
- Defined in:
- lib/circular-mail.rb
Overview
Description: This object can store 16 selected header fields, which are mandatory for CircularMail.
Validation of field values is happening in this class, rather than in Header. This is due to keep Header clean.
Instance Attribute Summary collapse
-
#body ⇒ Object
readonly
Returns the value of attribute body.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
Instance Attribute Details
#body ⇒ Object (readonly)
Returns the value of attribute body.
481 482 483 |
# File 'lib/circular-mail.rb', line 481 def body @body end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
480 481 482 |
# File 'lib/circular-mail.rb', line 480 def name @name end |
Instance Method Details
#get ⇒ Object
537 538 539 |
# File 'lib/circular-mail.rb', line 537 def get() return "#{@name}:#{@body}\r\n" end |
#set(name, body) ⇒ Object
483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 |
# File 'lib/circular-mail.rb', line 483 def set(name, body) case name when 'From' # from CircularMail::die("Inappropriate value for 'From' header field!") if CircularMail::config('strictness') && CircularMail::config('header_address_validation').match(body).nil? when 'Sender' # sender CircularMail::die("Inappropriate value for 'Sender' header field!") if CircularMail::config('strictness') && CircularMail::config('header_address_validation').match(body).nil? when 'Reply-To' # reply-to CircularMail::die("Inappropriate value for 'Reply-To' header field!") if CircularMail::config('strictness') && CircularMail::config('email_validation').match(body).nil? when 'To' # to CircularMail::die("Inappropriate value for 'To' header field!") if CircularMail::config('strictness') && CircularMail::config('header_address_validation').match(body).nil? when 'Cc' # cc CircularMail::die("Inappropriate value for 'Cc' header field!") if CircularMail::config('strictness') && CircularMail::config('header_address_validation').match(body).nil? when 'Bcc' # bcc CircularMail::die("Inappropriate value for 'Bcc' header field!") if CircularMail::config('strictness') && CircularMail::config('header_address_validation').match(body).nil? when 'Message-ID' # message-id CircularMail::die("Inappropriate value for 'Message-ID' header field!") if CircularMail::config('strictness') && CircularMail::config('header_msgid_validation').match(body).nil? when 'Subject' # subject unstructured CircularMail::die("Inappropriate value for 'Subject' header field!") if CircularMail::config('strictness') && CircularMail::config('header_unstructured_validation').match(body).nil? when 'Comments' # comments unstructured CircularMail::die("Inappropriate value for 'Comments' header field!") if CircularMail::config('strictness') && CircularMail::config('header_unstructured_validation').match(body).nil? when 'Date' # orig-date CircularMail::die("Inappropriate value for 'Message-ID' header field!") if CircularMail::config('strictness') && CircularMail::config('header_date_validation').match(body).nil? when 'MIME-Version' CircularMail::die("Only MIME 1.0 is supported in CircularMail!") if CircularMail::config('strictness') && body != '1.0' when 'Content-Type' CircularMail::die("Inappropriate value for 'Content-Type' header field!") if CircularMail::config('strictness') && CircularMail::config('header_content_type_validation').match(body).nil? when 'Content-Transfer-Encoding' CircularMail::die("Inappropriate value for 'Content-Transfer-Encoding' header field!") if CircularMail::config('strictness') && CircularMail::config('header_content_encoding_validation').match(body).nil? when 'Content-ID' CircularMail::die("Inappropriate value for 'Content-ID' header field!") if CircularMail::config('strictness') && CircularMail::config('header_msgid_validation').match(body).nil? when 'Content-Description' CircularMail::die("Inappropriate value for 'Content-Description' header field!") if CircularMail::config('strictness') && !CircularMail::check_charset(body, 'us-ascii') when 'Content-Disposition' CircularMail::die("Inappropriate value for 'Content-Disposition' header field!") if CircularMail::config('strictness') && !CircularMail::check_charset(body, 'us-ascii') else if CircularMail::config('strictness') CircularMail::die("Unsupported header field! Expected: #{CircularMail::config('valid_header_fields')}") unless CircularMail::config('valid_header_fields').include?(name) else name = CircularMail::config('fallback_header_field') body = CircularMail::config('fallback_header_body') end end if CircularMail::config('strictness') CircularMail::die("Header field body cannot contain CR, LF characters! (Don't worry, it will be appended automatically)") if body.include?("\r") || body.include?("\n") else body.gsub!("\r", "") body.gsub!("\n", "") end @name = name @body = body end |