Conectar ao Servidor SMTP
Conectar ao servidor SMTP com SSL
Para estabelecer uma conexão segura com um servidor SMTP que oferece suporte a SSL, você precisa configurar as seguintes propriedades chave do SmtpClient classe:
-
Host: O endereço do servidor SMTP (por exemplo, smtp.gmail.com)
-
Porta: A porta usada para comunicação com SSL (geralmente 465 para SSL implícito ou 587 para SSL/TLS explícito)
-
Nome de usuário: O nome da conta usado para autenticação
-
Senha: A senha da conta SMTP
-
Opções de Segurança: O tipo de criptografia a ser usado (SSLEXPLICIT, SSLIMPLICIT, etc.)
O exemplo de código a seguir demonstra como configurar e conectar a um servidor SMTP com suporte a SSL:
Definir um tempo limite para a resposta de saudação do servidor
Ao estabelecer uma conexão com um servidor SMTP, o servidor normalmente envia uma string de saudação após uma conexão bem‑sucedida. Essa resposta confirma que o servidor está pronto para prosseguir com a comunicação.
Em alguns cenários, clientes de e‑mail operam em modo de conexão automática, tentando múltiplas combinações de protocolos de segurança e portas (como SSL implícito ou STARTTLS) para estabelecer uma conexão bem‑sucedida. Se a configuração do cliente não corresponder ao modo de segurança esperado pelo servidor, o servidor não enviará a string de saudação. Essa incompatibilidade faz o cliente aguardar até que o tempo limite geral expire antes de tentar a próxima combinação — resultando em um manejo de conexão lento.
Para melhorar esse comportamento, Aspose.Email fornece o greeting_timeout propriedade na SmtpClient classe. Esta propriedade define um tempo limite específico (em milissegundos) para aguardar a string de saudação do servidor. Se a saudação não for recebida dentro do intervalo especificado, o cliente tenta imediatamente a próxima configuração — acelerando significativamente os processos de conexão automática.
O exemplo de código a seguir demonstra como implementar a propriedade em um projeto:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
Enviar e‑mails via SMTP usando um proxy SOCKS
Aspose.Email oferece suporte às versões 4, 4a e 5 do protocolo de proxy SOCKS. O exemplo de código a seguir demonstra como enviar um e‑mail usando SMTP com proxy SOCKS:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("smtp.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.SSL_IMPLICIT
# proxy address
proxy_address = "192.168.203.142"
#proxy port
proxy_port = 1080
socks_proxy = ae.clients.SocksProxy(proxy_address, proxy_port, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = socks_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"))
Enviar e‑mails via SMTP usando um proxy HTTP
O exemplo de código abaixo demonstra o uso de um proxy HTTP para enviar um e‑mail via um servidor SMTP:
import aspose.email as ae
http_proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password")
client.proxy = http_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Body"))
Selecionar métodos de autenticação SMTP suportados em Python
Para garantir uma conexão segura e compatível com um servidor SMTP, é importante usar um método de autenticação suportado tanto pelo cliente quanto pelo servidor. Aspose.Email para Python via .NET fornece incorporado propriedades para gerenciar isso:
-
supported_authentication— recupera uma lista de métodos de autenticação suportados pelo servidor SMTP. -
allowed_authentication— obtém ou define os métodos de autenticação que o cliente tem permissão para usar.
Ao usar essas propriedades, os desenvolvedores podem alinhar as capacidades do cliente com os requisitos do servidor e evitar falhas de autenticação durante o processo de conexão.
O trecho de código a seguir demonstra como especificar o método de autenticação SMTP permitido usando o allowed_authentication propriedade:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
Definir tempo limite do servidor SMTP
Ao enviar e‑mails pela rede, definir um tempo limite adequado é essencial para evitar que sua aplicação fique travada se o servidor não responder. O timeout propriedade do SmtpClient classe em Aspose.Email para Python via .NET permite definir o tempo máximo de espera (em milissegundos) para respostas do servidor.
Esta propriedade se aplica a operações como estabelecer uma conexão ou enviar comandos SMTP. Se o servidor não responder dentro do período especificado, o cliente gera uma exceção de tempo limite, ajudando a lidar com servidores não responsivos de forma mais eficaz.
Use o trecho de código a seguir para definir o tempo limite para a resposta do servidor:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
Habilitar criptografia TLS para conexões SMTP seguras
Aspose.Email oferece suporte à comunicação segura com servidores SMTP usando protocolos criptográficos SSL e TLS. Esses protocolos ajudam a proteger os dados trocados entre sua aplicação e o servidor de e‑mail, garantindo confidencialidade e integridade durante a transmissão.
NOTE: Only versions of SSL/TLS supported by your current Python framework can be applied. Unsupported protocol versions will be silently ignored without raising exceptions. If you need to bypass compatibility checks and explicitly set the encryption protocols, use the `set_supported_encryption_unsafe(value)` method of the [SmtpClient](https://reference.aspose.com/email/python-net/aspose.email.clients.smtp/smtpclient/#smtpclient-class) class.
O exemplo de código a seguir demonstra como definir TLS 1.3 para comunicação SMTP:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13
Usando o mecanismo CRAM-MD5 para autenticação
Aspose.Email para Python via .NET suporta o mecanismo de autenticação CRAM-MD5, que aumenta a segurança ao evitar a transmissão de senhas em texto puro durante a autenticação SMTP. Esse método é particularmente útil ao conectar-se a servidores que exigem autenticação de desafio‑resposta.
Para habilitar a autenticação CRAM-MD5, defina o allowed_authentication propriedade do SmtpClient classe para CRAM_MD5, conforme mostrado no exemplo de código a seguir:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5