2016-09-20 188 views
0

我想在odoo 9沒有任何電子郵件模板發送電子郵件。我已經設置成功傳出&傳入郵件配置。 我的方案是在管理郵件別名電子郵件 的發送者,這是我的模型:如何發送電子郵件沒有郵件模板odoo 9

class cashadvance(osv.osv): 
_name = 'comben.cashadvance' 
    _order = 'create_date DESC' 
    _columns = { 
     'user_target'    : fields.many2one('res.users', string='User Target'), 
     'mail_target'    : fields.char(string='Email Target'), 
    } 

的問題是,如何發送電子郵件使用功能mail_target場? 請幫助我

回答

2

您可以使用mail.thread型號直接發送郵件,方法是使用附在按鈕上的以下代碼。

@api.multi 
def send_mail(self): 
    user_id = self.user_target.id 
    body = self.message_target 

    mail_details = {'subject': "Message subject", 
     'body': body, 
     'partner_ids': [(user_target)] 
     } 

    mail = self.env['mail.thread'] 
    mail.message_post(type="notification", subtype="mt_comment", **mail_details) 

或者,你可以通過喇叭拿公牛和標準庫中使用純醇smtplib,(但那麼你odoo配置將不再重要)。這個例子假設你使用的是Gmail。如果您不是,那麼您必須填寫郵件服務器的詳細信息才能正常工作。

@api.multi 
def send_mail(self): 
    import smtplib 

    receivers_email = self.user_target.login 

    server = smtplib.SMTP('smtp.gmail.com', 587) 
    server.starttls() 
    server.login("your_email_address", "password") 

    message = self.message_target 
    server.sendmail("your_email_address", receivers_email, message) 

    server.quit() 

由於user_target是關係到res.users場可以從login領域獲得的電子郵件

+0

HII @danidee,感謝您的快速答案,對不起我的反應遲緩。最後我選擇smtplib來解決錯誤,並且它解決了機構,非常感謝你。 但我想知道如何在server.sendmail中添加郵件主題。我嘗試在server.sendmail中添加參數主題(「your_email_address」,receivers_email,主題,消息),但沒有成功 – yogakumboro

+0

'message =「Subject:%s \ n \ n%s」%('Your subject', self.message_target)' – danidee