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
Create an account today to enjoy exclusive features and engage with our awesome community!
Přihlásit seRelated Posts | Odpovědi | Zobrazení | Aktivita | |
---|---|---|---|---|
|
1
zář 15
|
3641 | ||
|
1
čvn 15
|
607 | ||
|
0
dub 15
|
464 | ||
|
2
dub 15
|
617 | ||
|
0
dub 15
|
432 |