Lỗi SSL khi gửi Email qua SMTP và cách Fix

Trong quá trình cấu hình và gửi email qua giao thức SMTP, nhiều người dùng thường gặp phải tình trạng xuất hiện lỗi SSL khiến việc gửi nhận thư bị gián đoạn. Đây là vấn đề phổ biến không chỉ với cá nhân mà cả các doanh nghiệp khi triển khai hệ thống email nội bộ hay sử dụng dịch vụ của bên thứ ba. Nguyên nhân có thể đến từ chứng chỉ bảo mật không hợp lệ, cấu hình sai hoặc sự không tương thích giữa máy chủ và ứng dụng gửi thư.

Bài viết này sẽ phân tích chi tiết nguyên nhân gây ra lỗi SSL khi gửi email qua SMTP và đưa ra các cách khắc phục hiệu quả, giúp bạn xử lý nhanh chóng để đảm bảo quá trình trao đổi thông tin luôn an toàn và thông suốt.

1. Nguyên nhân gây ra lỗi SSL khi gửi Email qua SMTP?

 

– Cấu hình sai cổng và phương thức mã hóa:

SMTP có nhiều cổng:

  • 25 (thường không mã hóa hoặc STARTTLS)
  • 465 (SSL/TLS)
  • 587 (STARTTLS)

Nếu chọn sai cổng hoặc chế độ mã hóa (ví dụ chọn SSL nhưng lại dùng port 587) sẽ dẫn đến lỗi SSL.

– Chứng chỉ SSL không hợp lệ hoặc hết hạn

  • Server SMTP sử dụng chứng chỉ tự ký (self-signed) hoặc chứng chỉ đã hết hạn → client sẽ từ chối kết nối.

– Tên miền trong chứng chỉ không khớp (hostname mismatch)

  • Ví dụ: chứng chỉ cấp cho mail.example.com nhưng client lại kết nối bằng smtp.example.com → báo lỗi SSL.

– Thư viện SSL/TLS trên client quá cũ

  • Một số client cũ chỉ hỗ trợ TLS 1.0/1.1, trong khi server yêu cầu TLS 1.2/1.3 → handshake thất bại.

– Tường lửa hoặc phần mềm bảo mật chặn kết nối SSL

  • Có thể do tường lửa, phần mềm antivirus hoặc proxy chặn hoặc thay đổi chứng chỉ SSL khi kết nối.

– Cấu hình sai thông tin xác thực

  • Dùng sai username/password → một số server báo lỗi SSL chung thay vì lỗi xác thực rõ ràng.

– Thiếu chứng chỉ CA tin cậy trên client

  • Client không có chứng chỉ gốc (CA root) để xác minh chứng chỉ SSL của server → báo lỗi không tin cậy.

2. Cách Fix lỗi SSL khi gửi Email qua SMTP?

Cách 1:

Chúng ta sẽ sử dụng Exchange Management Shell để giải quyết vấn đề này:

Bước 1: Chạy Get-ExchangeCertificate |FLđể kiểm tra chứng chỉ nào có dịch vụ SMTP.

Bước 2: Để chỉ định chứng chỉ được sử dụng cho các kết nối máy khách SMTP đã xác thực, hãy sử dụng cú pháp sau:

$TLSCert = Get-ExchangeCertificate -Thumbprint <ThumbprintValue>
$TLSCertName = “<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)”
Get-ReceiveConnector -Identity “Client Frontend*” | Set-ReceiveConnector -TlsCertificateName $TLSCertName

Sau khi TLS được thiết lập, bạn có thể truy cập owa để xác minh cài đặt SMTP chính xác đã được hiển thị chưa.

Cách 2: Chúng ta có thể Fix bằng Python?

 

– Với Python: 

import smtplib, ssl

context = ssl._create_unverified_context() # ✅ fix SSL
with smtplib.SMTP_SSL(“smtp.domain.com”, 465, context=context) as server:
server.login(“you@domain.com”, “your_password”)
server.sendmail(“you@domain.com”, “target@domain.com”, “Subject: Test\n\nHello SSL fixed!”)

– PHP (PHPMailer)

$mail->SMTPOptions = [
‘ssl’ => [
‘verify_peer’ => false,
‘verify_peer_name’ => false,
‘allow_self_signed’ => true // ✅ fix SSL
]
];

– Node.js (Nodemailer)

let transporter = nodemailer.createTransport({
host: “smtp.domain.com”,
port: 465,
secure: true,
auth: { user: “you@domain.com”, pass: “your_password” },
tls: { rejectUnauthorized: false } // ✅ fix SSL
});

2. Cuối cùng:

Trên đây là 2 cách mà mình dùng chủ yếu để Fix lỗi “Lỗi SSL khi gửi Email qua SMTP”  – bạn có thể thử nghiệm cả 2 cách để xử lý – chúc các bạn thành công

>>> Phát hiện lỗi OpenSMTPD quan trọng trên máy chủ thư Linux và OpenBSD

0/5 (0 Reviews)

Leave a Comment