def test_get_supported_server_info_as_enterprise_server(): for k in SUPPORTED_ENTERPRISE_SERVER_CONFIG: assert get_supported_server_info( '*****@*****.**', config=k), SUPPORTED_ENTERPRISE_SERVER_CONFIG[k] with pytest.raises(RuntimeError): get_supported_server_info('*****@*****.**', config='zmailtest')
def send_mail(self, recipients, message: dict, timeout=60) -> bool: """"Send email.""" mail = Mail(message) if self.auto_add_from and mail.get('from') is None: mail['from'] = '{}<{}>'.format(self.user.split("@")[0], self.user) recipients = recipients if isinstance(recipients, (list, tuple)) else (recipients,) host, port, ssl, tls = get_supported_server_info(self.user, 'smtp') host = self.smtp_host if self.smtp_host is not None else host port = self.smtp_port if self.smtp_port is not None else port ssl = self.smtp_ssl if self.smtp_ssl is not None else ssl tls = self.pop_tls if self.pop_tls is not None else tls logger.info('Prepare login into {}:{} ssl:{} tls:{}.'.format(host, port, ssl, tls)) server = SMTPServer(host, port, self.user, self.password) if ssl: server.send_ssl(recipients, mail, timeout, self.auto_add_to) else: server.send(recipients, mail, timeout, self.auto_add_to, tls) return True
def smtp_able(self): host, port, ssl, tls = get_supported_server_info(self.user, 'smtp') host = self.smtp_host if self.smtp_host is not None else host port = self.smtp_port if self.smtp_port is not None else port ssl = self.smtp_ssl if self.smtp_ssl is not None else ssl tls = self.pop_tls if self.pop_tls is not None else tls logger.info('Prepare login into {}:{} ssl:{} tls:{}.'.format(host, port, ssl, tls)) server = SMTPServer(host, port, self.user, self.password) return server.login_able(ssl, tls, self.timeout)
def pop_server(accounts): account = accounts[0] username = account[0] password = account[1] config = get_supported_server_info(username) return POPServer(username, password, host=config['pop_host'], port=config['pop_port'], ssl=config['pop_ssl'], tls=config['pop_tls'], timeout=60, debug=False)
def _init_pop3(self): """Initiate POP3 server.""" host, port, ssl, tls = get_supported_server_info(self.user, 'pop3') host = self.pop_host if self.pop_host is not None else host port = self.pop_port if self.pop_port is not None else port ssl = self.pop_ssl if self.pop_ssl is not None else ssl tls = self.pop_tls if self.pop_tls is not None else tls logger.info('Prepare login into {}:{} ssl:{}.'.format(host, port, ssl)) server = POP3Server(host, port, self.user, self.password, ssl, tls, self.timeout) return server
def pop_server_config(accounts): account = accounts[0] username = account[0] password = account[1] config = get_supported_server_info(username) return { 'username': username, 'password': password, 'host': config['pop_host'], 'port': config['pop_port'], 'ssl': config['pop_ssl'], 'tls': config['pop_tls'], 'timeout': 60, 'debug': False }
def mail_server_config(accounts) -> dict: account = accounts[0] username = account[0] password = account[1] auto_generate_config = get_supported_server_info(username) # Ignore IMAP config. auto_generate_config = { k: v for k, v in auto_generate_config.items() if 'imap' not in k } auto_generate_config.update(username=username, password=password) return auto_generate_config
def smtp_server(accounts): if not accounts: pytest.skip('Can not get accounts') account = accounts[0] username = account[0] password = account[1] config = get_supported_server_info(username) return SMTPServer(username, password, host=config['smtp_host'], port=config['smtp_port'], ssl=config['smtp_ssl'], tls=config['smtp_tls'], timeout=60, debug=False)
def smtp_server_config(accounts): if not accounts: pytest.skip('Can not get accounts') account = accounts[0] username = account[0] password = account[1] config = get_supported_server_info(username) return { 'username': username, 'password': password, 'host': config['smtp_host'], 'port': config['smtp_port'], 'ssl': config['smtp_ssl'], 'tls': config['smtp_tls'], 'timeout': 60, 'debug': False }
def test_all_account_smtp_and_pop_able(accounts): for account in accounts: username = account[0] password = account[1] auto_generate_config = get_supported_server_info(username) # Ignore IMAP config. auto_generate_config = { k: v for k, v in auto_generate_config.items() if 'imap' not in k } auto_generate_config.update(username=username, password=password) server = MailServer(**auto_generate_config) assert server.smtp_able() assert server.pop_able()
def test_get_supported_server_info_as_default_config(): assert get_supported_server_info( '*****@*****.**'), DEFAULT_SERVER_CONFIG
def test_get_supported_server_info(): for k in SUPPORTED_SERVER: assert get_supported_server_info('zmailtest@' + k), SUPPORTED_SERVER[k]