2016-09-20 4 views
0

Ich möchte E-Mail ohne E-Mail-Vorlage in odoo senden 9. Ich habe erfolgreich ausgehend & eingehende Mail-Konfiguration festgelegt. Mein Szenario ist der Admin Mail-Alias ​​als Absender der E-Mail das mein Modell ist:So senden Sie E-Mail ohne Mail-Vorlage 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'), 
    } 

Die Frage ist, wie E-Mail senden Feld mail_target eine Funktion? Hilf mir bitte

Antwort

2

Sie können eine E-Mail direkt mit dem Modell mail.thread senden, indem Sie den folgenden Code verwenden, der an eine Schaltfläche angehängt ist.

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

Oder Sie können einfach durch das Horn den Stier nehmen und plain ol smtplib aus der Standardbibliothek verwenden, (aber dann odoo Konfiguration wird keine Rolle mehr). In diesem Beispiel wird davon ausgegangen, dass Sie Google Mail verwenden. Wenn dies nicht der Fall ist, müssen Sie die Details Ihres Mailservers eingeben, damit dieser ordnungsgemäß funktioniert.

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

Seit user_target ist mit dem res.users Feld bezogen Sie die E-Mail aus dem login Feld bekommen

+0

hii @danidee, vielen Dank für Ihre schnelle Antwort und sorry für meine späte Antwort. Schließlich wähle ich die smtplib, um den Fehler zu lösen, und es löste Körper, danke vielmals. Aber ich frage mich, wie man Mail Betreff in server.sendmail hinzufügen. Ich habe versucht, Parameter Betreff in server.sendmail hinzufügen ("your_email_address", receivers_email, Betreff, Nachricht), aber keine erfolgreich – yogakumboro

+0

'message =" Betreff:% s \ n \ n% s "% ('Ihr Thema', self.message_target) ' – danidee