Example #1
0
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')
Example #2
0
    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
Example #3
0
    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)
Example #4
0
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)
Example #5
0
    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
Example #6
0
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
    }
Example #7
0
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
Example #8
0
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)
Example #9
0
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
    }
Example #10
0
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()
Example #11
0
def test_get_supported_server_info_as_default_config():
    assert get_supported_server_info(
        '*****@*****.**'), DEFAULT_SERVER_CONFIG
Example #12
0
def test_get_supported_server_info():
    for k in SUPPORTED_SERVER:
        assert get_supported_server_info('zmailtest@' + k), SUPPORTED_SERVER[k]