> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Gửi email

> Gửi email kích hoạt, lời mời và đặt lại mật khẩu từ một triển khai Kubernetes.

Dịch vụ **web** gửi mọi email (kích hoạt, lời mời tham gia dự án, đặt lại mật khẩu) từ mọi pod Ayakaleaf Pro. Các thiết lập giống như trên Toolkit, xem [Gửi email](https://ayakaleaf-pro.mintlify.site/vi/on-premises/configuration/overleaf-toolkit/email-delivery.md).

| | |
| - | - |
| Dịch vụ | web, trong mọi pod Ayakaleaf Pro; được đọc khi web khởi động |
| Pod → bên ngoài | máy chủ SMTP của bạn (`OVERLEAF_EMAIL_SMTP_HOST`), hoặc Amazon SES API của `OVERLEAF_EMAIL_AWS_SES_REGION` |
| Trạng thái | giới hạn tốc độ gửi trong Redis |
| Tác vụ định kỳ | không có |

### Cấu hình

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  OVERLEAF_EMAIL_FROM_ADDRESS: no-reply@example.com
  OVERLEAF_EMAIL_SMTP_HOST: smtp.example.com
  OVERLEAF_EMAIL_SMTP_PORT: "587"
  OVERLEAF_EMAIL_SMTP_SECURE: "false"
  OVERLEAF_EMAIL_SMTP_USER: no-reply@example.com
  # optional
  # OVERLEAF_EMAIL_REPLY_TO: support@example.com
  # OVERLEAF_EMAIL_SMTP_IGNORE_TLS: "false"
  # OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH: "true"
```

`OVERLEAF_EMAIL_FROM_ADDRESS` bật việc gửi email. Chỉ đặt nó cùng với máy chủ SMTP (hoặc SES): nếu chỉ có địa chỉ người gửi, Ayakaleaf Pro sẽ thử một máy chủ SMTP bên trong pod, và mọi email đều thất bại. Nếu không đặt, email sẽ không được gửi mà chỉ được ghi vào `web.log`.

`OVERLEAF_EMAIL_SMTP_SECURE`, `OVERLEAF_EMAIL_SMTP_IGNORE_TLS` và `OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH` được đọc dưới dạng JSON, vì vậy hãy dùng `"true"` hoặc `"false"`: một giá trị như `yes` sẽ làm dừng mọi dịch vụ của pod khi khởi động.

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge \
  -p '{"stringData":{"OVERLEAF_EMAIL_SMTP_PASS":"<SMTP password>"}}'
```

Đối với Amazon SES API, thay vào đó hãy đặt `OVERLEAF_EMAIL_AWS_SES_ACCESS_KEY_ID` và `OVERLEAF_EMAIL_AWS_SES_SECRET_KEY` tại đây, và đặt `OVERLEAF_EMAIL_DRIVER: ses` cùng `OVERLEAF_EMAIL_AWS_SES_REGION` vào ConfigMap.

**3. Áp dụng, khởi động lại và kiểm tra**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

Hãy tự gửi cho mình một email đặt lại mật khẩu từ trang đăng nhập. Nếu email không đến, hãy kiểm tra rằng các pod truy cập được máy chủ SMTP và xem log web:

```bash theme={null}
kubectl -n overleaf exec deploy/overleaf -- bash -c 'echo > /dev/tcp/smtp.example.com/587 && echo reachable'
kubectl -n overleaf exec deploy/overleaf -- grep -iE "email|smtp" /var/log/overleaf/web.log | tail
```

### Nhiều replica

Không cần gì thêm. Mọi replica gửi với cùng thiết lập, và giới hạn tốc độ gửi được đếm trong Redis trên tất cả các replica. Nếu máy chủ SMTP của bạn chỉ chấp nhận những người gửi đã biết, hãy cho phép các địa chỉ mà pod dùng khi rời khỏi cluster (thường là địa chỉ của các node).

### Đã kiểm thử trên Kubernetes

Với Mailpit làm máy chủ SMTP, trên Kubernetes 1.37 với một replica, các bài kiểm thử end-to-end gửi email của chúng tôi đều đạt: email kích hoạt của tài khoản do quản trị viên tạo, email kích hoạt của việc tự đăng ký giới hạn theo tên miền, email đặt lại mật khẩu, email thông báo cho người dùng rằng tài khoản của họ đã bị xóa, và điều xảy ra khi máy chủ SMTP từ chối email kích hoạt hoặc email xóa: tài khoản vẫn được tạo hoặc xóa, và email kích hoạt có thể được gửi lại sau. Với `OVERLEAF_EMAIL_FROM_ADDRESS` mà không có máy chủ SMTP, một yêu cầu đặt lại mật khẩu đã thất bại kèm lỗi và `web.log` hiển thị “error sending message”, như mô tả ở trên.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.