Subversion Repositories SmartDukaan

Rev

Rev 494 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
353 ashish 1
'''
2
Created on 14-Jul-2010
3
 
4
@author: ashish
5
'''
6
from email.mime.multipart import MIMEMultipart
7
from shop2020.thriftpy.utils.ttypes import HelperServiceException, Mail
8
from email.mime.base import MIMEBase
9
from email import encoders
10
import os
11
import smtplib
12
from shop2020.helpers.impl.DataService import Message
13
from elixir import *
14
 
15
from shop2020.thriftpy.utils.ttypes import Message as Msg
16
from string import Template
17
 
18
 
19
def sendMail(mail):
20
    if not mail:
21
        raise HelperServiceException(101, "mail not present")
22
    msg = MIMEMultipart()
23
    mail = Mail()
24
    msg['From'] = mail.sender
25
    msg['Subject'] = mail.subject
26
    msg.attach(mail.data)
27
 
28
    #handle attachments in mail
29
    if mail.attachments:
30
        for attach in mail.attachments:
31
 
32
            part = MIMEBase('application', 'octet-stream')
33
            part.set_payload(open(attach, 'rb').read())
34
            encoders.encode_base64(part)
35
            part.add_header('Content-Disposition',
36
                    'attachment; filename="%s"' % os.path.basename(attach))
37
            msg.attach(part)
38
 
39
    for to in mail.to:
40
        msg['To'] = to
41
 
42
        mailServer = smtplib.SMTP("smtp.gmail.com", 587)
43
        mailServer.ehlo()
44
        mailServer.starttls()
45
        mailServer.ehlo()
46
        mailServer.login(mail.sender, mail.password)
47
        mailServer.sendmail(mail.password, to, msg.as_string())
48
        # Should be mailServer.quit(), but that crashes...
49
        mailServer.close() 
50
 
51
def sendText(text):
52
    pass
53
 
54
def addMessage(message):
55
    msg = Message.get_by(message_id=message.id)
56
    if msg:
57
        raise HelperServiceException(101, "Message is already present. Please try updation api instead")
58
    msg = Message();
59
    msg.message_id = message.id
60
    msg.message = message.message
61
    session.commit()
62
 
63
def getMessage(message_id):
64
    msg = Message.get_by(id=message_id)
65
    message = Msg()
66
    message.id = msg.message_id
67
    message.message = msg.message
68
    return message
69
 
70
def updateMessage(id, message):
71
    msg = Message.get_by(message_id=id)
72
    if msg:
73
        msg.message = message
74
        session.commit()
75
    else:
76
        raise HelperServiceException(101, "message could not be found with id %d" %(id))
77
 
78
def getSubstitutedMessage(id, params):
79
    #get the message first
80
    msg = Message.get_by(message_id=id)
81
 
82
    if not msg:
83
        raise HelperServiceException(101, "message could not be found with id %d" %(id))
84
    if params:
85
        s = Template(msg.message)
86
        s = s.safe_substitute(params)
87
        return s
88
    else:
89
        return msg.message
90