2016-09-20 4 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을 사용한다고 가정합니다. 그렇지 않다면 제대로 작동하려면 메일 서버의 세부 정보를 입력해야합니다. user_target 이후

@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() 

당신이 login 필드에서 이메일을 얻을 수있는 res.users 분야에 관련이

+0

HII @danidee, 내 말 응답에 대한 빠른 답변을 미안 주셔서 감사합니다. 마지막으로 나는 오류를 해결하기 위해 smtplib을 선택하고, 그것은 몸을 해결했다. 하지만 server.sendmail에 메일 제목을 추가하는 방법에 대해 궁금합니다. server.sendmail ("your_email_address", receivers_email, subject, message)에 매개 변수 제목을 추가하려했으나 성공하지 못했습니다. – yogakumboro

+0

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

관련 문제