我正在尝试设置 postfix、dovecot 和 procmail 以与虚拟用户一起工作。最后,我希望拥有虚拟用户以及添加规则以对传入规则进行排序的可能性。最后,我需要 procmail(对吧?)。
当我向我的服务器发送电子邮件时,我没有在我的 Maildir 中收到它,并在 mail.log 中看到:
Jun 17 21:01:03 cs postfix/smtpd[24811]: connect from dub0-omc2-s13.dub0.hotmail.com[157.55.1.152]
Jun 17 21:01:03 cs postfix/smtpd[24811]: D8C9F44D88: client=dub0-omc2-s13.dub0.hotmail.com[157.55.1.152]
Jun 17 21:01:03 cs postfix/cleanup[24816]: D8C9F44D88: message-id=<DUB115-W85D8D79486AEC1D4346693C0830@phx.gbl>
Jun 17 21:01:04 cs postfix/qmgr[24806]: D8C9F44D88: from=<my-test-email>, size=1617, nrcpt=1 (queue active)
Jun 17 21:01:04 cs procmail[24818]: Denying special privileges for "/etc/procmailrcs/default.rc"
Jun 17 21:01:04 cs postfix/smtpd[24811]: disconnect from dub0-omc2-s13.dub0.hotmail.com[157.55.1.152]
Jun 17 21:01:04 cs postfix/pipe[24817]: D8C9F44D88: to=<my-virtual-email>, relay=virtualprocmail, delay=0.18, delays=0.15/0/0/0.02, dsn=2.0.0, status=sent (delivered via virtualprocmail service)
Jun 17 …Run Code Online (Sandbox Code Playgroud) /var/log/maillog 中的错误行
Sep 22 12:08:20 sun amavis[4493]: (04493-09) (!)run_av (ClamAV-clamd) FAILED - unexpected , output="/var/spool/amavisd/tmp/amavis-20130922T052321-04493-crApLkq5/parts: lstat() failed: Permission denied. ERROR\n"
Sep 22 12:08:20 sun amavis[4493]: (04493-09) (!)ClamAV-clamd av-scanner FAILED: CODE(0x29185c0) unexpected , output="/var/spool/amavisd/tmp/amavis-20130922T052321-04493-crApLkq5/parts: lstat() failed: Permission denied. ERROR\n" at (eval 113) line 897.
Sep 22 12:08:20 sun amavis[4493]: (04493-09) (!)WARN: all primary virus scanners failed, considering backups
Run Code Online (Sandbox Code Playgroud)
服务器用户和组
# cat /etc/passwd | grep "amavis\|clamav"
clam:x:495:493:Clam Anti Virus Checker:/var/lib/clamav:/sbin/nologin
amavis:x:494:492:User for amavisd-new:/var/spool/amavisd:/sbin/nologin
# id amavis
uid=494(amavis) gid=492(amavis) groups=492(amavis),493(clam)
# id …Run Code Online (Sandbox Code Playgroud) 我刚刚用 postfix 和 dovecot 设置了一个邮件服务器,现在我在用evolution.
例如,当我向 发送电子邮件时to@gmail.com,出现错误:
NOQUEUE: reject: RCPT from unknown[MY_IP_ADDRESS]: 450 4.3.2 <to@gmail.com>:
Recipient address rejected: Try again later; from=<contact@XX>
to=<dest@gmail.com> proto=ESMTP helo=<[IP_ADDRESS]>
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了一下,问题似乎是:
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Run Code Online (Sandbox Code Playgroud)
我可以将我当前的 IP 地址添加到mynetworks,并且它起作用了。但是如果我从另一个位置使用它呢?所以我需要它在任何地方工作。
然后我尝试设置smtpd_relay_restrictions为空值,并smtpd抱怨
postfix/smtpd[16217]: fatal: in parameter smtpd_relay_restrictions or
smtpd_recipient_restrictions, specify at least one working instance of:
reject_unauth_destination, defer_unauth_destination, reject, defer, defer_if_permit or check_relay_domains
Run Code Online (Sandbox Code Playgroud)
我现在真的不知道该怎么办,如果我添加0.0.0.0/0或类似的东西mynetworks会不会有问题?(也许会成为垃圾邮件服务器?)
PS 我在 Ubuntu 14.04 上运行 postfix 2.11
我使用本教程设置Postfix和Dovecot一个在CentOS 7Web服务器。但是,当我尝试使用 发送测试电子邮件时sudo echo "TEST" | mail -s "testmail" newuser@localhost && sudo tail -f /var/log/maillog,我收到一条错误消息,指出 Dovecot 无权创建用于存储电子邮件的目录。我如何设置权限Dovecot并Postfix使其能够正常工作CentOS 7?
我是新手linux。我知道adduser,chmod,chown,octal permissions,等命令,但我不知道它们是如何适用于这个特定的要求,我不想被不理解尝试创建无效的东西。
这是错误消息中最相关的部分:
Error: user import: Initialization failed: Namespace '':
mkdir(/home/import/Maildir) failed:
Permission denied (euid=1001(import) egid=1001(import)
missing +w perm: /home/import, UNIX perms appear ok (ACL/MAC wrong?))
Run Code Online (Sandbox Code Playgroud)
这是完整的错误消息:
Dec 30 19:03:42 mydomain postfix/pickup[8093]: A22E78221C13: uid=1000 from=<anotherusername>
Dec …Run Code Online (Sandbox Code Playgroud) 使用 Postfix (2.11.3) 我想将所有邮件重定向到外部地址。
/etc/postfix/main.cf:
virtual_alias_maps = regexp:/etc/postfix/rewrite
Run Code Online (Sandbox Code Playgroud)
/etc/postfix/rewrite:
/^.+$/ hijacked@example.com
Run Code Online (Sandbox Code Playgroud)
向 发送邮件destination@example.net,出现以下错误:
[...] to=<hijacked@example.com>, orig_to=<destination@example.net> [...] status=bounced (User unknown in virtual alias table)
Run Code Online (Sandbox Code Playgroud)
文档说:
有效的收件人地址与 virtual_alias_maps 参数一起列出。Postfix SMTP 服务器通过“虚拟别名表中的用户未知”拒绝无效收件人。
事实证明,该错误与验证虚拟别名域有关:virtual_alias_domains默认情况下是$virtual_alias_maps,将其设置为其他任何内容(设置为不匹配的域或什至将其留空)可以解决问题。
我在答案中找到的另一个解决方案是以另一种形式给出正则表达式:
/^.+@.+$/ hijacked@example.com
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,当使用正则表达式表进行虚拟别名时,别名域的验证如何工作?为什么设置virtual_alias_domains为其他任何内容都可以解决问题?上述两种地址映射方式的等效模式有何不同?
的输出postconf -n是:
config_directory = /etc/postfix
inet_interfaces = loopback-only
inet_protocols = ipv4
mydestination =
myhostname = example.org
myorigin = $myhostname
virtual_alias_domains =
virtual_alias_maps = regexp:/etc/postfix/rewrite
Run Code Online (Sandbox Code Playgroud) helo我的 SMTP 服务器合法且正确的是什么?
我们是一家拥有多个分支机构的小型企业。我们有 2 个不同的网站,其中包含电子邮件地址,例如:
我们的 SMTP 服务器将为这两个域发送电子邮件。
...并且没有可用的反向映射记录),客户端应该发送一个地址文字(参见第 4.1.3 节),可选地后跟有助于识别客户端系统的信息。
...为了绕过这个障碍,允许使用地址的特殊文字形式作为域名的替代。对于 IPv4 地址,此形式使用四个小十进制整数,以点分隔并用方括号括起来,例如 [123.255.37.2] ...
因此我认为我的helo名字应该是:
[1.2.3.4] company name INC city, state
Run Code Online (Sandbox Code Playgroud)
smtp_helo_name = [1.2.3.4] company name INC city, state
Run Code Online (Sandbox Code Playgroud)
使用这个我仍然收到以下错误:
... status=bounced (host mx1c38.carrierzone.com[66.175.58.41] refused to talk to me: 501 5.0.0 Invalid domain name
... status=bounced (host mta5.am0.yahoodns.net[98.138.112.38] refused to talk to me: …Run Code Online (Sandbox Code Playgroud) 我使用 Ubuntu 14.04.3 LTS 。如何更改邮箱 / 的home/user/Maildir/位置/Location/Mail/?
我不必为该用户创建主目录。我对文件
做了一些更改/etc/default/useradd/etc/login.defs但是当我创建新用户时没有反映(邮件目录在 /home/user/ 目录中创建)。
所以我需要创建一个用户,其邮件目录 /Location/Mail/默认指向该用户。
我也用postfix。如果我可以更改 postfix 中的默认用户邮件目录,那对我来说也可以。
我正在尝试从我们的 CentOS 服务器向用户发送 HTML 电子邮件。从长远来看,我将构建一个 COBOL 程序,该程序运行命令将报告发送给用户。
这里有一些细节。
至于我试过运行什么命令。我今天看到的最多的是以下。
$ mailx -a 'Content-Type: text/html' -s "Command Line Test" andyv@example.com < ./bodytext.html
Run Code Online (Sandbox Code Playgroud)
运行显示的命令后,我收到一条错误消息,提示“内容类型:文本/html:没有这样的文件或目录”。我很确定在某个更新之后,他们不再允许 -a 作为内容类型指定的标志。
我还尝试将“Content-Type: text/html”作为第一行添加到实际的 bodytext.html 文件中。我对我可以做些什么来发送 HTML 电子邮件有点不知所措。我发现的一些消息来源说 mailx 和 postfix 无法正确发送 HTML 电子邮件。希望事实并非如此,但如果确实如此,我想知道您对其他 MAU 和 MTA 技术有何看法?
我已经使用 Postfix、Dovecot 作为我的 SASL 和 Rainloop 作为我的 WebClient 设置了一个邮件服务器。我正在使用 MySQL(在询问我的最后一个问题之后)作为我的用户帐户和密码,并且它工作正常,但是我面临两个问题。【第二个解决了】
我无法接收电子邮件!(我只需要员工通过电子邮件联系,他们目前无法收到任何电子邮件,当我从一名员工向另一名员工发送电子邮件时,我找不到显示失败迹象的日志文件,我真的不知道是什么可能是无法接收的问题。)
[已解决] 用户可以通过 ThunderBird 登录,因为它会要求确认 SMTP 和 IMAP 的证书。即当我登录时,我应该接受证书,而第一次发送邮件时,我应该接受另一个证书,然后它就会起作用。但是 Outlook 无法登录,因为它只要求一次证书和 IMAP。
这是我的配置文件:
/etc/postfix/main.cf
myhostname = mail.domain.tld
mydomain = domain.tld
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#home_mailbox = Maildir/
#relayhost =
#mynetworks = 127.0.0.0/8, 172.16.67.68, [::1]/128
smtpd_tls_cert_file=/etc/ssl/certs/mailcert.pem
smtpd_tls_key_file=/etc/ssl/private/mail.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_security_level=may
#smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes …Run Code Online (Sandbox Code Playgroud) 我在我的 Debian VPS 中设置了一个邮件系统。除了我无法向 user 发送电子邮件外,一切都很顺利root。
有一种解决方法可以指定/etc/aliases类似
root: <some_other_user>
然后所有发送到的电子邮件root@<fqdn>都会进入<some_other_user>@<fqdn>邮箱。
从安全的角度来看,它甚至更好,但我想知道是否有办法向用户发送电子邮件root。
所以是的,在技术上可以使用 Postfix 吗?如果是这样,我该怎么做?
更新:
这是postfix.service日志:
Apr 26 22:18:25 <hostname><fqdn> postfix/qmgr[2375]: 3905421760: from=<ddnomad@<fqdn>>, size=631, nrcpt=1 (queue active)
Apr 26 22:18:26 <hostname><fqdn> postfix/local[2429]: 3905421760: to=<mailuser@<fqdn>>, orig_to=<root@<fqdn>>, relay=local, delay=1.3, delays=0.21/0.01/0/1, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Run Code Online (Sandbox Code Playgroud)
据我了解,这意味着这封信已成功发送。但它从未被送到root的邮箱。