email - 为什么我的自定义 postfix 虚拟邮箱不起作用
问题描述
我有什么
我正在 Virtualbox 上测试后缀。最初,我通过将传入邮件(朝向我的域)传递到管道(来自此答案https://superuser.com/a/1490699的方法 1 )并让传出邮件正常发送而取得了成功。
现在我已将我的 postfix 配置切换为使用虚拟邮箱功能(仍在 Virtualbox 上),因此我可以使用 Mysql 在接受邮件之前查询域和用户是否存在。使用如下配置:
virtual_transport = myhook:dummy
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
通过 postmap -q 进行测试时一切正常,我从“mydestination”中删除了我的域,以确保邮件不会传输到本地。
问题
我遵循了很多指南
https://www.linode.com/docs/guides/email-with-postfix-dovecot-and-mysql/ https://wiki.gentoo.org/wiki/Complete_Virtual_Mail_Server/Postfix_to_Database
然而,这些指南是在考虑 Dovecot 的情况下制作的,我不会使用它。
通过命令行向在虚拟邮箱中找到的另一个用户发送邮件时,我收到以下错误
to=<me@laravel8.test>, orig_to=<me>, relay=none, delay=36, delays=36/0.02/0.05/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=laravel8.test type=AAAA: Host not found)
尽管域出现在 virtual_mailbox_domains 中。更改为 ipv4 没有任何变化
我读到这可能是由于 Postfix 没有使用 /etc/hosts(将 laravel8.test 指向 127.0.0.1)所以我在 main.cf 中添加了以下几行
lmtp_host_lookup = native
smtp_host_lookup = native
但现在我得到这个错误:
to=<support@laravel8.test>, relay=none, delay=0, delays=0/0/0/0, dsn=5.4.6, status=bounced (mail for laravel8.test loops back to myself)
是的,这不是我想要的吗?我希望将邮件发送给另一个用户,然后按照 virtual_transport 中的声明将此邮件传输到我的管道。
无论我做什么,我似乎只会遇到更多问题。
如果可能,请提供帮助。
解决方案
问题似乎是
/etc/postfix/mysql-virtual-mailbox-domains.cf
曾是
user = root
password =
hosts = 127.0.0.1
dbname = laravel
query = SELECT domain FROM mailbox WHERE domain='%d' LIMIT 1
什么时候应该
user = root
password =
hosts = 127.0.0.1
dbname = laravel
query = SELECT domain FROM mailbox WHERE domain='%s' LIMIT 1
我对应该在何时何地使用 %s 或 %d 和 %u 感到非常困惑。这里 postfix 只发送域到这个 mysql 查询,所以必须是整个字符串作为 %s
推荐阅读
- java - JPA entities with same name - exact uniqueness requirements for table name of @Table(name="MyPersistedEntity") annotation
- mysql - Dertermine whether indexes in Mysql work or not
- javascript - js share array between thread
- algorithm - Minimizing the maximum cost of job assignment problem
- c - 将科学计数法中的数字转换为十进制
- pine-script - Pine 脚本:使用 plotshapes 时停用数字显示
- python - How to calculate proportion display pie chart in pandas or others?
- dictionary - Dart won't compile because of unmatching types, 'List
' can't be assigned to the parameter type 'List Function()' - typo3 - TYPO3 10.4: Menu of subpages with image
- callback - Gstreamer splitmuxsink callback when a new file is created