Updated NOTIFICATION_SMTP_MAILER to follow the EiffelNet EMAIL design.

This commit is contained in:
Jocelyn Fiat
2017-11-13 12:29:16 +01:00
parent ccff084642
commit e83f5654d8

View File

@@ -95,40 +95,67 @@ feature -- Basic operation
l_email: EMAIL
h: STRING
i: INTEGER
lst: LIST [READABLE_STRING_8]
do
create l_email.make_with_entry (a_email.from_address, addresses_to_header_line_value (a_email.to_addresses))
if attached a_email.reply_to_address as l_reply_to then
l_email.add_header_entry ({EMAIL_CONSTANTS}.h_reply_to, l_reply_to)
end
if attached a_email.cc_addresses as lst then
l_email.add_header_entry ({EMAIL_CONSTANTS}.h_cc, addresses_to_header_line_value (lst))
end
if attached a_email.bcc_addresses as lst then
l_email.add_header_entry ({EMAIL_CONSTANTS}.h_bcc, addresses_to_header_line_value (lst))
end
l_email.set_message (a_email.content)
l_email.add_header_entry ({EMAIL_CONSTANTS}.H_subject, a_email.subject)
create h.make_empty
;(create {HTTP_DATE}.make_from_date_time (a_email.date)).append_to_rfc1123_string (h)
l_email.add_header_entry ("Date", h)
if attached a_email.additional_header_lines as lst then
across
lst as ic
loop
h := ic.item
i := h.index_of (':', 1)
if i > 0 then
l_email.add_header_entry (h.head (i - 1), h.substring (i + 1, h.count))
else
check is_header_line: False end
lst := a_email.to_addresses
if lst.is_empty then
-- Error ...
else
-- With EMAIL, there should be a unique recipient at creation.
create l_email.make_with_entry (a_email.from_address, lst.first)
if lst.count > 1 then
from
lst.start
lst.forth
until
lst.off
loop
l_email.add_recipient_address (lst.item)
lst.forth
end
end
end
if attached a_email.reply_to_address as l_reply_to then
l_email.add_header_entry ({EMAIL_CONSTANTS}.h_reply_to, l_reply_to)
end
smtp_send_email (l_email)
if attached a_email.cc_addresses as l_cc_addresses then
across
l_cc_addresses as ic
loop
l_email.add_recipient_address_in_cc (ic.item)
end
end
if attached a_email.bcc_addresses as l_bcc_addresses then
across
l_bcc_addresses as ic
loop
l_email.add_recipient_address_in_bcc (ic.item)
end
end
l_email.set_message (a_email.content)
l_email.add_header_entry ({EMAIL_CONSTANTS}.H_subject, a_email.subject)
create h.make_empty
;(create {HTTP_DATE}.make_from_date_time (a_email.date)).append_to_rfc1123_string (h)
l_email.add_header_entry ("Date", h)
if attached a_email.additional_header_lines as l_lines then
across
l_lines as ic
loop
h := ic.item
i := h.index_of (':', 1)
if i > 0 then
l_email.add_header_entry (h.head (i - 1), h.substring (i + 1, h.count))
else
check is_header_line: False end
end
end
end
smtp_send_email (l_email)
end
end
feature {NONE} -- Implementation
@@ -182,4 +209,3 @@ note
Customer support http://support.eiffel.com
]"
end