90 lines
No EOL
1.9 KiB
Text
90 lines
No EOL
1.9 KiB
Text
:mod:`email_lib` --- Email
|
|
==========================
|
|
|
|
.. module:: email_lib
|
|
:synopsis: Email library
|
|
|
|
Email object
|
|
------------
|
|
|
|
.. class:: Email(self, sender='', recipients=[], subject='')
|
|
|
|
Wrapper on the email module. Email object represents emails to be sent to the client.
|
|
Also provides a clean way to add binary `FileData` attachments
|
|
|
|
.. attribute:: sender
|
|
|
|
sender's email
|
|
|
|
.. attribute:: reply_to
|
|
|
|
[Optional] if reply_to is not same as sender
|
|
|
|
.. attribute:: recipients
|
|
|
|
`list` of recipients or a string separated by comma (,) or semi-colon (;)
|
|
|
|
.. attribute:: subject
|
|
|
|
email subject
|
|
|
|
.. attribute:: msg
|
|
|
|
message object `email.mime.multipart.MIMEMultipart`
|
|
|
|
.. attribute:: cc
|
|
|
|
`list` of cc email ids
|
|
|
|
.. method:: set_message(message, mime_type='text/html')
|
|
|
|
append the message with MIME content
|
|
|
|
.. method:: attach(file_id)
|
|
|
|
attach a file from the `FileData` table
|
|
|
|
.. method:: validate()
|
|
|
|
validate the email ids
|
|
|
|
.. method:: setup()
|
|
|
|
setup the SMTP (outgoing) server from `Control Panel` or defs.py
|
|
|
|
.. method:: send()
|
|
|
|
send the message
|
|
|
|
.. method:: validate_email_add(email_id)
|
|
|
|
Validate the email id
|
|
|
|
.. method:: sendmail(recipients, sender='', msg='', subject='[No Subject]', parts=[], cc=[], attach=[])
|
|
|
|
Short cut to method to send an email
|
|
|
|
Example
|
|
-------
|
|
|
|
Email with attachments::
|
|
|
|
# get attachments
|
|
al = sql('select file_list from `tab%s` where name="%s"' % (dt, dn))
|
|
if al:
|
|
al = al[0][0].split('\n')
|
|
|
|
# create the object
|
|
email = server.EMail('test@webnotestech.com', ['a@webnotestech.com', 'b@webnotestech.com'], 'this is a test')
|
|
|
|
# add some intro
|
|
email.set_message(replace_newlines('Hi\n\nYou are being sent %s %s\n\nThanks' % dt, dn))
|
|
|
|
# add attachments
|
|
for a in al:
|
|
email.attach(a.split(',')[0])
|
|
|
|
# send
|
|
email.send()
|
|
|
|
|