[IMP]: implement CC and BCC features for the smtp client while sending emails

bzr revid: mga@tinyerp.com-20100427144437-h41ne7bd7itf0ogm
This commit is contained in:
Mantavya Gajjar
2010-04-27 20:14:37 +05:30
parent 98df501e00
commit dcbcddd117
2 changed files with 20 additions and 6 deletions
+14 -6
View File
@@ -68,7 +68,9 @@ class smtpclient(osv.osv):
_columns = {
'name' : fields.char('Server Name', size=256, required=True),
'from_email' : fields.char('Email From', size=256),
'email' : fields.char('Email Address', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
'email':fields.char('Email Address', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
'cc_to':fields.char('Send copy to', size=256, readonly=True, states={'new':[('readonly',False)]}),
'bcc_to':fields.char('Send blank copy to', size=256, readonly=True, states={'new':[('readonly',False)]}),
'user' : fields.char('User Name', size=256, readonly=True, states={'new':[('readonly',False)]}),
'password' : fields.char('Password', size=1024, invisible=True, readonly=True, states={'new':[('readonly',False)]}),
'server' : fields.char('SMTP Server', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
@@ -386,7 +388,7 @@ class smtpclient(osv.osv):
emailto = [emailto]
ir_pool = self.pool.get('ir.attachment')
for to in emailto:
msg = MIMEMultipart()
msg['Subject'] = tools.ustr(subject)
@@ -420,7 +422,13 @@ class smtpclient(osv.osv):
msg['X-OpenERP-Server-Host'] = socket.gethostname()
msg['X-OpenERP-Server-Version'] = release.version
msg['Message-Id'] = "<%s-openerp-@%s>" % (time.time(), socket.gethostname())
if smtp_server.cc_to:
msg['Cc'] = smtp_server.cc_to
if smtp_server.bcc_to:
msg['Bcc'] = smtp_server.bcc_to
#attach files from disc
for file in attachments:
part = MIMEBase('application', "octet-stream")
@@ -442,8 +450,8 @@ class smtpclient(osv.osv):
data = {
'to':to,
'server_id':server_id,
'cc':False,
'bcc':False,
'cc':smtp_server.cc_to or False,
'bcc':smtp_server.bcc_to or False,
'name':subject,
'body':body,
'serialized_message':message,
@@ -499,7 +507,7 @@ class smtpclient(osv.osv):
self.open_connection(cr, uid, ids, email.server_id.id)
try:
self.smtpServer[email.server_id.id].sendmail(email.server_id.email, email.to, tools.ustr(email.serialized_message))
self.smtpServer[email.server_id.id].sendmail(email.server_id.email, [email.to, email.cc, email.bcc], tools.ustr(email.serialized_message))
message = "message sent successfully to %s from %s server" % (email.to, email.server_id.name)
logger.notifyChannel('smtp', netsvc.LOG_INFO, message)
except Exception, e:
+6
View File
@@ -77,6 +77,12 @@
<field name="delete_queue" select="2" />
<field name="delete_queue_period" select="2" attrs="{'readonly':[('delete_queue','not in',['content','all'])]}"/>
</group>
<group col="2" colspan="2">
<separator string="Email Copy Configuration" colspan="2" />
<field name="cc_to" select="2" />
<field name="bcc_to" select="2" />
</group>
<newline/>
<separator string="Server Information" colspan="4"/>
<group col="3" colspan="4">