Chuyển tới nội dung chính
Version: 4.1

Gỡ lỗi email chào mừng gửi không thành công trong HiTechCloud Enterprise

Triệu chứng: hitechcloudcli user-add / giao diện HiTechAdmin báo Failed to send welcome email, không có lỗi nào trong /var/log/hitechcloud/admin/error.log và không có thư mục /var/log/hitechcloud/admin/emails/, dù các lần thử SMTP trực tiếp đều thành công.

Các bước gỡ lỗi​

1. Bật ghi nhật ký chi tiết

hitechcloudcli config update dev_mode on
systemctl restart admin
tail -f /var/log/hitechcloud/admin/error.log

Tái hiện qua CLI với -x để có vết đầy đủ:

hitechcloudcli -x user-add <username> '<password>' <email> <plan>

Kiểm tra xem bước gửi email có thực sự được thử hay bị bỏ qua âm thầm, ví dụ:

+ send_welcome_email
+ [[ false == true ]]
+ return 0

Nếu bị bỏ qua, hãy đảm bảo lệnh CLI có cùng các cờ mà giao diện gửi đi (ví dụ --send-email) — nếu không bạn sẽ không tái hiện đúng nhánh mã đó.

2. Xác minh cấu hình SMTP đã lưu khớp với thông tin đăng nhập mong muốn

Ký tự đặc biệt có thể bị loại bỏ hoặc thoát sai khi nhập qua giao diện:

grep '^mail_' /etc/hitechcloud/hitechcloud/conf/hitechcloud.config

Sửa qua CLI nếu cần:

hitechcloudcli config update mail_password '<password>'

3. Chạy một lượt chẩn đoán sạch

#!/bin/bash
CONFIGURED_EMAIL=$(hitechcloudcli config get email)
DEV_MODE=$(hitechcloudcli config get dev_mode)

[[ -z "$CONFIGURED_EMAIL" ]] && { echo "ERROR: no notification email configured. Run: hitechcloudcli config update email example@yourdomain.com"; exit 1; }
[[ "$DEV_MODE" != "on" ]] && { echo "ERROR: dev_mode must be on. Run: hitechcloudcli config update dev_mode on && service admin restart"; exit 1; }

mv /var/log/hitechcloud/admin/error.log /var/log/hitechcloud/admin/error.log.OLD 2>&1 && touch /var/log/hitechcloud/admin/error.log
mv /var/log/hitechcloud/admin/notifications.log /var/log/hitechcloud/admin/notifications.log.OLD && touch /var/log/hitechcloud/admin/notifications.log

hitechcloudcli -x sentinel --startup 2>&1 | tail -n 10
grep "/send_email" /var/log/hitechcloud/admin/access.log | tail -n 1
cat /var/log/hitechcloud/admin/error.log

Script này xác định xem yêu cầu có tới được /send_email hay không và ghi lại lỗi phát sinh.

Các nguyên nhân gốc thường gặp​

Hairpin NAT — nếu panel gọi tới tên miền công khai của chính nó từ bên trong (thay vì localhost) và mạng/tường lửa không hỗ trợ hairpin NAT, lời gọi nội bộ sẽ hết thời gian chờ.

Cách sửa: thêm một mục hosts cục bộ để máy chủ phân giải tên miền của chính nó về chính nó:

127.0.0.1 <admin-panel-domain>

Nhà cung cấp SMTP chặn IP — các lần kết nối thử lặp lại có thể kích hoạt cơ chế chống lạm dụng, ví dụ:

421 - 4.4.5 Directory harvest attack detected

Cách sửa: yêu cầu nhà cung cấp mail gỡ chặn và đưa IP gửi đi của máy chủ vào danh sách cho phép.

Danh sách kiểm tra​

  • Tái hiện bằng hitechcloudcli -x user-add ... với cùng các cờ như giao diện
  • Bật dev_mode, khởi động lại admin, theo dõi error.log
  • Xác nhận bước gửi email không bị bỏ qua âm thầm
  • Xác minh các giá trị trong tệp cấu hình khớp với thông tin đăng nhập mong muốn
  • Chạy script chẩn đoán để xác nhận yêu cầu tới được /send_email
  • Kiểm tra sự cố hairpin NAT
  • Hỏi nhà cung cấp SMTP xem IP có bị chặn do thử nghiệm lặp lại không