2

我已经在我的 Mac 上安装了 postfix,并更改了以下参数:

mydestination =
relayhost = 127.0.0.1:1025

我已将mydestination修改为空白,这样无论在终端中将邮件发送给谁,它都必须通过中继主机(即使它被发送到@localhost),我可以看到它出现在 Mailcatcher 选项卡的我的网络浏览器中:

echo "Body test" | mail -s "Subject test" test@dev.local

但事情是这样的,当我收到邮件时,我确实使用内置的 websockets 立即收到了它,但是如果我重新加载页面 localhost:1080,电子邮件仍然存在,这意味着它们必须存储在某个地方。

搜索后,我发现以下 URL 重定向到一个 .json,其中包含接收到的邮件,这些邮件在 Mailcatcher 的选项卡中打印出来:

localhost:1080/messages

但是,如果我ls -l在我的 webroot 目录中执行操作,则不会出现 messages.json。当您确实单击 Mailcatcher 中的“退出”按钮时,然后重新启动它mailcatcher并再次打开localhost:1080邮件已经消失了......

我不明白,是否有一个文件在您单击“退出”时被删除而我可能没有看到?

谢谢你的帮助 !

4

1 回答 1

2

如果您查看 GitHub 上的源代码,您会SQLite3::Database.new(":memory:", :type_translation => true).tap do |db|mail.rb中找到类似的内容。

你可能没有注意到,但是 MailCatcher 使用的是 SQLite,上面告诉你它被配置为在内存中运行。因此,当关闭 MailCatcher 时,该数据库中包含的所有行都将丢失。

于 2017-08-07T05:22:34.780 回答