Hello every body,
please I make module and I want to write code in this module to send message from mail to another email but I do not know how do this ,
so I will than full if any one help me to do that ,
thanks for all .
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hello every body,
please I make module and I want to write code in this module to send message from mail to another email but I do not know how do this ,
so I will than full if any one help me to do that ,
thanks for all .
import smtplib
sender = 'username'
receivers = 'username'
message = """hai da
"""
smtpObj = smtplib.SMTP(host='smtp.gmail.com', port=587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.ehlo()
smtpObj.login(user="username", password="password")
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email
this function is sending email using template
1st create a template in odoo refer it email template
then use this function
def send_email(self,cr,uid,ids,context=None):
email_template_obj = self.pool.get('email.template')
template_ids = email_template_obj.search(cr, uid, [('model_id.model', '=','hr.employee')], context=context)
print template_ids
if template_ids:
values = email_template_obj.generate_email(cr, uid, template_ids[0], ids[0], context=context)
"""values['subject'] = subject
values['email_to'] = email_to
values['body_html'] = body_html
values['body'] = body_html"""
values['res_id'] = False
mail_mail_obj = self.pool.get('mail.mail')
msg_id = mail_mail_obj.create(cr, uid, values, context=context)
if msg_id:
mail_mail_obj.send(cr, uid, [msg_id], context=context)
return True
do I have to replace the docy_html with the actual body or the text OR would it automatically write the body based on the email template.
sender=str(self.from_id)
receiver=str(self.email_id)
message=str(self.leave_reason)
try:
smtpObj = smtplib.SMTP(host='smtp.gmail.com', port=587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.ehlo()
username=str(self.from_id)
pwd=str(self.mail_password)
smtpObj.login(user=username, password=pwd)
smtpObj.sendmail(sender,receiver,message)
smtpObj.quit()
self.state='waiting'
print "success"
except SMTPException:
print "error"
you can also use email function inside any function (button function or any function) :
this is an example for button function i used in crm module :
def set_approve(self, cr, uid, ids,context=None):
res_id = self.read(cr, uid, ids, ['boq_item_ids'], context)[0]['id']
email_obj = self.pool.get('email.template')
user_obj = self.pool.get('res.users').browse(cr, uid, uid)
template_ids = email_obj.search(cr, uid, [('name', '=', 'Opportunity approved')])
email = email_obj.browse(cr, uid, template_ids[0])
email_obj.write(cr, uid, template_ids, {'email_from': email.email_from,
'email_to': email.email_to,
'subject': email.subject,
'body_html': email.body_html,
'email_recipients': email.email_recipients})
email_obj.send_mail(cr, uid, template_ids[0], res_id, True, context=context)
stage_id = self.get_stageid(cr, uid, [('state', '=', 'approved')], context=context)
a = fields.datetime.now()
b = self.pool.get('crm.lead').read(cr, uid, ids, context=context)
c = b[0]['date_stage_waiting']
timedelta = 0
if c != 0:
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
a = datetime.datetime.strptime(a, DATETIME_FORMAT)
c = datetime.datetime.strptime(c, DATETIME_FORMAT)
timedelta = a - c
if stage_id:
self.write(cr, uid, ids, {'stage_id': stage_id, 'date_stage_approved': a, 'diff_waiting': timedelta}, context=context)
return True
NB : 1) donot forget to create email template with name as in your function
2) configure your outgoing mail server
Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.
InscribirsePublicaciones relacionadas | Respuestas | Vistas | Actividad | |
---|---|---|---|---|
|
1
sept 15
|
3641 | ||
|
1
jun 15
|
607 | ||
|
0
abr 15
|
464 | ||
|
2
abr 15
|
617 | ||
|
0
abr 15
|
433 |