smtp4dev 配置攻略

lmy

发布于119天前
1
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.smtp4dev

smtp4dev 是一款专为开发测试设计的假邮件服务器——接收所有发来的邮件但从不真正投递,同时提供 Web 界面查看收件箱。部署在懒猫微服上,可用于本地开发环境的邮件发送调试。


1. 三个协议分别干什么

  • SMTP:发信,把邮件投递到 smtp4dev
  • IMAP:收信,在客户端读取服务器上的邮件,支持多端同步
  • POP3:收信,偏下载式读取

2. 端口转发配置(重点)

以域名 smtp4dev.xxx.heiyu.space 为例:

协议对外端口服务内端口
SMTP252525
IMAP1143143
POP31110110

加密建议:先全部使用无加密 / None,不要开 SSL/TLS,也不要 STARTTLS。

然后我们通过懒猫端口转发助手把端口转发出来

https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.forward

image.png


4. 验证代码(用 ssh 验证运行,记得吧 xxx 的域名改成自己的域名)

A. SMTP 发信验证

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')

image.png
进应用可以看到收到了邮件

image.png

B. IMAP 读取验证

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')

可以看到已经读到了邮件

image.png

C. POP3 读取验证

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')

读到了对应内容

image.png

6. 常见坑

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

评论

0

暂无评论

说点什么呢~
收藏
0
0
0