Here is the code:

                    cc = []
                    for to_name, to_email_addr in to_email_addrs:
                        cc.append(to_email_addr)

result = *send_email_message_web2py*(
reply_to=reply_to,                                            
reply_to_email_addr=reply_to_email_addr,                                    
        sender_organization=sender_organization,
sender_name=sender_name,                                            
sender_email_addr=sender_email_addr,                                        
    sender_phone_work=sender_phone_work,
to_name=to_name,
to_email_addr=to_email_addr,
template=template,
subject=subject,
message_body=message_body,
attachments=attachments,
cc=cc,
bcc=bcc,
)

def  *send_email_message_web2py* (
                                    reply_to,
                                    reply_to_email_addr,
                                    sender_organization,
                                    sender_name,
                                    sender_email_addr,
                                    sender_phone_work,
                                    to_name,
                                    to_email_addr,
                                    template,
                                    subject,
                                    message_body,
                                    attachments=None,
                                    cc=None,
                                    bcc=None,
                                    ):

    
    from gluon import current
    request = current.request 
    response = current.response
    mail=current.app.mail

    if not isinstance(cc, (list, tuple)):\
        to_email_addr=to_email_addr.replace(' ','')
    reply_to_email_addr=reply_to_email_addr.replace(' ','')
    
    result = False

    sender = ('%s <%s>'
                 % (sender_name, sender_email_addr))

    reply_to_email_addr1 = ('%s <%s>'
                 % (reply_to, reply_to_email_addr))

    to_email_addr = ('%s <%s>'
                 % (to_name, to_email_addr))


    ##################
    #render the email template
    ##################
    filename_email_template_txt = template  + '.txt'
    
filename_email_template_txt=os.path.join(request.folder,filename_email_template_txt)
    if os.access(filename_email_template_txt,os.R_OK):
        body=open(filename_email_template_txt,'r').read()
    else:
        body=('Internal error:%s' % (message_body))            

    filename_email_template_html = template  + '.html'
    
filename_email_template_html=os.path.join(request.folder,filename_email_template_html)
    if os.access(filename_email_template_html,os.R_OK):
        body=open(filename_email_template_html,'r').read()
    else:
        body=('<html><body><h1>Internal error</h1>%s</html>' % 
(message_body))            

    ##################
    #import name in body    
    context=dict(
                 sender_organization = sender_organization,
                 sender_name = sender_name,
                 sender_email_addr = sender_email_addr,
                 sender_phone_work = sender_phone_work, 
                 to_name_in_body = to_name_in_body, 
                 to_name = to_name,
                 message_body=message_body
                 )
    
    try:        
        message_txt = response.render(filename_email_template_txt,context)
    except Exception, e:
        pass
    context=dict(
                 sender_organization = sender_organization,
                 sender_name = sender_name,
                 sender_email_addr = sender_email_addr,
                 sender_phone_work = sender_phone_work, 
                 to_name_in_body = to_name_in_body, 
                 to_name = to_name,
                 message_body=message_body
                 )
                 #message_body=message_body.replace('<br>','\n')
    #logging.info('%s: context_html:%s' % (sub, str(context)))

    try:        
        message_html = response.render(filename_email_template_html,context)
    except Exception, e:
        pass
    ##################

    message_html = message_html.replace('&lt;br&gt;', '<br>')
    message_body = (message_txt, message_html)
    ########################

    to = to_email_addr
    reply_to = reply_to_email_addr

    msg = ('%s, to:%s, subject=%s, message_html:%s' % (sub, to, subject, 
str(message_html)))
    logging.info('%s:%s' % (sub, msg))
    
    '''
            cc: list or tuple of carbon copy receiver addresses; will also
                accept single object
            bcc: list or tuple of blind carbon copy receiver addresses; will
                also accept single object
            reply_to: address to which reply should be composed
    
        def send(
        self,
        to,
        subject='None',
        message='None',
        attachments=None,
        cc=None,
        bcc=None,
        reply_to=None,
        encoding='utf-8',
        headers={}
        ):

    '''
    result = *mail.send*(to=to,
                       bcc=bcc,
                      * cc=cc, *
                       subject=subject, 
                       message=message_body,
                       reply_to = reply_to
                       )

    msg = ('mail.send:%s' % (to))
    logging.info('%s:%s' % (sub, msg))

    return result

Reply via email to