SMTP 서버에 연결
SSL을 사용해 SMTP 서버에 연결
다음 핵심 속성을 구성해야 합니다. SmtpClient 클래스:
-
Host: SMTP 서버 주소 (예: smtp.gmail.com)
-
Port: SSL 지원 통신에 사용되는 포트 (보통 암시적 SSL은 465, 명시적 SSL/TLS는 587)
-
Username: 인증에 사용되는 계정 이름
-
Password: SMTP 계정의 비밀번호
-
Security Options: 사용할 암호화 유형 (SSLEXPLICIT, SSLIMPLICIT 등)
다음 코드 예제는 SSL 지원 SMTP 서버를 구성하고 연결하는 방법을 보여줍니다:
서버 인사 응답에 대한 시간 제한 설정
SMTP 서버와 연결을 설정할 때, 서버는 일반적으로 성공적인 연결 후 인사 문자열을 보냅니다. 이 응답은 서버가 통신을 진행할 준비가 되었음을 확인시켜 줍니다.
일부 상황에서는 이메일 클라이언트가 자동 연결 모드로 작동하여 보안 프로토콜 및 포트의 여러 조합(예: 암시적 SSL 또는 STARTTLS)을 시도해 성공적인 연결을 시도합니다. 클라이언트 설정이 서버가 기대하는 보안 모드와 일치하지 않으면 서버는 인사 문자열을 보내지 않습니다. 이 불일치로 인해 클라이언트는 다음 조합을 시도하기 전에 일반 시간 초과가 만료될 때까지 대기하게 되어 연결 처리 속도가 느려집니다.
이 동작을 개선하기 위해 Aspose.Email은 greeting_timeout 속성은 SmtpClient 클래스. 이 속성은 서버 인사 문자열을 대기하는 특정 시간 제한(밀리초)을 설정합니다. 지정된 시간 내에 인사가 수신되지 않으면 클라이언트는 즉시 다음 구성으로 시도하여 자동 연결 프로세스를 크게 가속화합니다.
다음 코드 예제는 해당 속성을 프로젝트에 구현하는 방법을 보여줍니다:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
SOCKS 프록시를 사용해 SMTP로 이메일 보내기
Aspose.Email은 SOCKS 프록시 프로토콜 버전 4, 4a 및 5를 지원합니다. 다음 코드 예제는 SOCKS 프록시를 사용하여 SMTP로 이메일을 보내는 방법을 보여줍니다:
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)"))
HTTP 프록시를 사용해 SMTP로 이메일 보내기
아래 코드 예제는 HTTP 프록시를 사용하여 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"))
Python에서 지원되는 SMTP 인증 방법 선택
SMTP 서버와 안전하고 호환 가능한 연결을 보장하려면 클라이언트와 서버 모두 지원하는 인증 방식을 사용하는 것이 중요합니다. Aspose.Email for Python via .NET은 내장된 속성 이를 관리하려면:
-
supported_authentication— SMTP 서버가 지원하는 인증 방식 목록을 가져옵니다. -
allowed_authentication— 클라이언트가 사용할 수 있는 인증 방식을 가져오거나 설정합니다.
이러한 속성을 사용함으로써 개발자는 클라이언트의 기능을 서버 요구 사항에 맞출 수 있으며, 연결 과정에서 인증 실패를 방지할 수 있습니다.
다음 코드 스니펫은 허용된 SMTP 인증 방식을 지정하는 방법을 보여줍니다. allowed_authentication 속성:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
SMTP 서버 시간 제한 설정
네트워크를 통해 이메일을 보낼 때 적절한 시간 제한을 설정하는 것은 서버가 응답하지 않을 경우 애플리케이션이 멈추는 것을 방지하는 데 필수적입니다. timeout 속성 SmtpClient Aspose.Email for Python via .NET의 클래스는 서버 응답에 대한 최대 대기 시간(밀리초)을 정의할 수 있게 합니다.
이 속성은 연결 설정이나 SMTP 명령 전송과 같은 작업에 적용됩니다. 서버가 지정된 시간 내에 응답하지 않으면 클라이언트가 시간 초과 예외를 발생시켜 응답이 없는 서버를 보다 효과적으로 처리할 수 있도록 도와줍니다.
다음 코드 스니펫을 사용하여 서버 응답에 대한 시간 제한을 설정합니다:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
안전한 SMTP 연결을 위한 TLS 암호화 활성화
Aspose.Email은 SSL 및 TLS 암호화 프로토콜을 사용하여 SMTP 서버와의 보안 통신을 지원합니다. 이러한 프로토콜은 애플리케이션과 메일 서버 간에 교환되는 데이터를 보호하여 전송 중 기밀성과 무결성을 보장합니다.
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.
다음 코드 예제는 SMTP 통신에 TLS 1.3을 설정하는 방법을 보여줍니다:
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
인증을 위한 CRAM-MD5 메커니즘 사용
Aspose.Email for Python via .NET은 CRAM-MD5 인증 메커니즘을 지원합니다. 이는 SMTP 인증 중 평문 비밀번호 전송을 방지함으로써 보안을 강화합니다. 이 방법은 챌린지-응답 인증이 필요한 서버에 연결할 때 특히 유용합니다.
CRAM-MD5 인증을 사용하려면 다음을 설정하십시오: allowed_authentication 속성 SmtpClient 다음 코드 예제에 나와 있는 것처럼 클래스를 CRAM_MD5로 설정합니다:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5