# Sendmail

trytond.sendmail.sendmail_transactional(from_addr, to_addrs, msg[, transaction[, datamanager[, strict]]])

  Send email message only if the current transaction is successfully committed.

  The required arguments are an RFC 5322 from-address string, a list of RFC 5322 to-address strings (a bare string is treated as a list with 1 address), and an email message. The caller may pass a `Transaction` instance to join otherwise the current one is joined. A specific data manager can be specified otherwise the default `SMTPDataManager` is used for sending email. The strict value is passed to instantiate the default `SMTPDataManager`.

  Warning

  An SMTP failure is only logged without raising any exception.

trytond.sendmail.sendmail(from_addr, to_addrs, msg[, server[, strict]])

  Send email message like `sendmail_transactional()` but directly without caring about the transaction and return the `server`.

  The caller may pass a server instance from smtplib. It may return a new server instance if a reconnection was needed and if the instance comes from `get_smtp_server()`. If strict is `True`, an exception is raised if it is not possible to connect to the server.

trytond.sendmail.get_smtp_server([uri[, strict]])

  Return a SMTP instance from smtplib using the `uri` or the one defined in the `email` section of the configuration. If strict is `True`, an exception is raised if it is not possible to connect to the server.

class trytond.sendmail.SMTPDataManager([uri[, strict]])

  Implement a data manager which send queued email at commit.

  An option optional `uri` can be passed to configure the SMTP connection. If strict is `True`, the data manager prevents the transaction if it fails to send the emails.

SMTPDataManager.put(from_addr, to_addrs, msg)

  Queue the email message to send.