
lmy
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.smtp4dev
**smtp4dev** 是一款专为开发测试设计的假邮件服务器——接收所有发来的邮件但从不真正投递,同时提供 Web 界面查看收件箱。部署在懒猫微服上,可用于本地开发环境的邮件发送调试。
---
## 1. 三个协议分别干什么
- **SMTP**:发信,把邮件投递到 smtp4dev
- **IMAP**:收信,在客户端读取服务器上的邮件,支持多端同步
- **POP3**:收信,偏下载式读取
---
## 2. 端口转发配置(重点)
以域名 `smtp4dev.xxx.heiyu.space` 为例:
| 协议 | 对外端口 | 服务内端口 |
|------|----------|------------|
| SMTP | 2525 | 25 |
| IMAP | 1143 | 143 |
| POP3 | 1110 | 110 |
> **加密建议**:先全部使用无加密 / None,不要开 SSL/TLS,也不要 STARTTLS。
然后我们通过懒猫端口转发助手把端口转发出来
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.forward

---
## 4. 验证代码(用 ssh 验证运行,记得吧 xxx 的域名改成自己的域名)
### A. SMTP 发信验证
```python
import smtplib
from email.message import EmailMessage
host = 'smtp4dev.xxx.heiyu.space'
port = 2525
msg = EmailMessage()
msg['From'] = 'verify@openclaw.local'
msg['To'] = 'inbox@local.dev'
msg['Subject'] = 'SMTP 验证邮件'
msg.set_content('这是一封 SMTP 验证邮件')
with smtplib.SMTP(host, port, timeout=15) as s:
s.ehlo_or_helo_if_needed()
s.send_message(msg)
print('SMTP_OK')
```

进应用可以看到收到了邮件

### B. IMAP 读取验证
```python
import imaplib
host = 'smtp4dev.xxx.heiyu.space'
m = imaplib.IMAP4(host, 1143)
print('LOGIN:', m.login('test', 'test123'))
print('SELECT:', m.select('INBOX'))
print('SEARCH ALL:', m.search(None, 'ALL'))
m.logout()
print('IMAP_OK')
```
可以看到已经读到了邮件

### C. POP3 读取验证
```python
import poplib
host = 'smtp4dev.xxx.heiyu.space'
p = poplib.POP3(host, 1110, timeout=10)
print('WELCOME:', p.getwelcome().decode())
print('USER:', p.user('test').decode())
print('PASS:', p.pass_('test123').decode())
print('STAT:', p.stat()) # → (邮件数, 总大小)
print('QUIT:', p.quit().decode())
print('POP3_OK')
```
读到了对应内容

## 6. 常见坑
- **主机名别带协议前缀**:只填 `smtp4dev.xxx.heiyu.space`,不要写 `https://...`
- **端口别填错**:IMAP 是 `1143`,POP3 是 `1110`,不是标准的 143 / 110
- **不要开 SSL/TLS**:明文端口开了加密会导致连不上或 `broken pipe`
- **连接超时**:检查懒猫微服端口转发规则是否已保存生效,容器是否正常运行
评论
0暂无评论