Exemplo n.º 1
0
 def create(self, subject, content, **kwargs):
     mail_to = kwargs.get('mail_to')
     if not mail_to:
         recipient = kwargs.get('recipient')
         if not recipient or not recipient.email_verified or not recipient.email:
             return None
         mail_to = kwargs['mail_to'] = recipient.email
     #
     send_from = kwargs.get('send_from')
     cache_connection = True
     if send_from:
         password = kwargs.pop('password', '')
         provider = kwargs.pop('provider', {})
         cache_connection = False
     else:
         send_from = kwargs['send_from'] = Confs.get_smtp_user()
         password = Confs.get_smtp_password()
         provider = Confs.get_smtp_provider()
     if not isinstance(provider, dict):
         provider = provider_configs.get(provider, {})
     if not send_from or not password or not provider:
         return None
     #
     if cache_connection and self.connection:
         connection = self.connection
     else:
         connection = EmailBackend(username=send_from, password=password, **provider)
     if cache_connection and not self.connection:
         self.connection = connection
     try:
         status = bool(send_mail(subject, content, send_from, [mail_to], connection=connection))
     except Exception as e:
         status = False
     kwargs['status'] = status
     #
     return super(MailManager, self).create(subject=subject, content=content, **kwargs)
Exemplo n.º 2
0
Arquivo: rest.py Projeto: gzqichang/wa
 def retrieve(self, request, *args, **kwargs):
     if hasattr(Confs, 'get_proj_version'):
         v = Confs.get_proj_version(raw=True)
     else:
         v = False
     return Response({'server_version': v})
Exemplo n.º 3
0
def register_smtp_confs():
    Confs.register_group(SMTP_VALUES, '邮件', [
        dict(name=SMTP_PROVIDER, note='邮箱服务商', klass='select', choice=providers),
        (SMTP_USER, '邮箱帐号'),
        dict(name=SMTP_PASSWORD, note='邮箱密码', klass='password'),
    ], SMTP_SCRIPT)