kjo*_*kjo 5 email configuration postfix
当我尝试postfix
在我的家庭桌面系统上安装时,我得到一个配置对话框,其中包含以下选项1:
我的主要兴趣是让我的桌面上运行的非交互式程序(主要是守护进程和 cron 作业)能够向我的手机(发送到我当前的电子邮件地址或手机上的 SMS 客户端)发送通知。
如果这样的通知也可以在本地发送给root
用户,那将非常方便,但这是次要的要求。
我的桌面系统通过 ISP (Xfinity) 连接到互联网。
我想从一开始就排除了选项 1。
能够向我当前(即非“本地”)电子邮件地址发送邮件的要求排除了选项 5。
这留下了选项 2、3 和 4,但我无法从上面的描述中找出我应该选择哪个。
编辑:赏金描述中有一个错字(不幸的是,我无法再修复);它说的地方
...选项(1)中提到的“互联网站点”究竟是什么,...
应该
......选项(2)中提到的“互联网站点”究竟是什么,......
编辑 2:阅读我的问题的第一个答案后,我意识到我写的赏金描述不够明确。在此描述中,我为我的电子邮件地址、我的 ISP 和我的主机名提供了(虚构但真实的)值。我还要求避免像www.example.org
. 我将所有这些规定放在赏金描述中,因为我希望答案包含原始问题中指定的用例的后缀配置文件。很抱歉我没有在赏金描述中明确说明这一点(尽管这就是我所说的“详细说明”)。
1各种选项的描述是从对话框中逐字复制的。
Raf*_*ffa 12
互联网站点:直接使用 SMTP 发送和接收邮件。
此选项要求您拥有完全限定的域名以及修改该域名的 DNS 记录的完全访问权限,因为此方法需要添加 MX 记录和反向 DNS 才能发送和接收电子邮件。
使用 smarthost 的 Internet:使用 SMTP 或通过运行 fetchmail 等实用程序直接接收邮件。外发邮件是使用智能主机发送的。
此选项要求您拥有完全限定的域名,但不一定具有修改该域名的 DNS 记录的完全访问权限。您向邮件服务提供商或智能主机付费,让他们代表您发送电子邮件,并提供一种路由/方法,通过处理您域名的 MX 和其他 DNS 记录,或者在他们的服务器上接收这些记录并为您提供将传入电子邮件传输到您的计算机的路由/方法。包含邮件服务器地址、端口和凭据,以便您可以使用不同的协议(如 POP 和 IMAP)定期获取传入的电子邮件。
卫星系统:所有邮件都发送到另一台称为“智能主机”的机器进行投递。
此选项不要求您拥有完全限定的域名,也不要求您具有修改 DNS 记录的权限。这就是您问题中所描述的目的。
您可以重新配置 postfix 并选择正确的选项,如下所示:
sudo dpkg-reconfigure postfix
Run Code Online (Sandbox Code Playgroud)
在配置屏幕中,您将看到:
邮件配置的常规类型:从中选择卫星系统。
系统邮件名称:输入您机器的主机名,默认情况下很可能会显示该主机名。
SMTP 中继主机(空白表示无):此阶段无关紧要,因为修改时将再次设置它,/etc/postfix/main.cf
因此保留默认值。
根和邮局管理员邮件收件人:将其留空以将本地电子邮件postmaster
定义为/etc/aliases
“发送到”/var/mail/nobody
或设置系统用户来接收它...这与中继电子邮件无关。这是为了处理本地发送到例如 root@localhost 或其他本地用户帐户的电子邮件,其中可能/etc/aliases
包含如下内容:
# See man 5 aliases for format
postmaster: root
Run Code Online (Sandbox Code Playgroud)
其他接受邮件的目的地(空白表示无):这些是您的 postfix 安装将接受其电子邮件的主机名...因此,将其保留为默认值,这将仅是您当前计算机的所有可能的主机名。
在邮件队列上强制同步更新?:这告诉 postfix 实现某种内部日志系统,这会减慢速度,但仅当您的文件系统不是日志文件系统时才需要,而 Ubuntu 的 ext4 文件系统不是这种情况......所以选择不。
本地网络:类似于上面的“接受邮件的其他目的地”...这是一项安全功能,以便您网络上或网络外部的其他主机无法通过您的 postfix 实例发送电子邮件...因此请将其保留为默认值。
邮箱大小限制(字节):不言自明...我建议您将其保留为默认值,即无限制。
本地地址扩展字符:将其保留为默认值,因为电子邮件提供商将基于此默认值来制定其后缀集成的具体说明。
要使用的互联网协议:保留所有协议,除非您知道自己在做什么……一切都应该正常工作。
值得一提的是,如果您编辑/etc/postfix/main.cf
后记,那么在上面的初始配置中选择什么选项并不重要,并且许多指南建议选择不同的选项...比较这个和这个...但是这些指南没有清楚地解释这一点并且例如,一本指南告诉您选择互联网站点,然后后记告诉您修改/etc/postfix/main.cf
和设置relayhost
,这会将 postfix 从独立邮件服务器更改为中继邮件服务器,即就像将选项更改为卫星系统一样!
对于中继选项/etc/postfix/main.cf
将包含relayhost
设置为电子邮件提供商的内容,如下所示:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)
之后,请按照您的电子邮件提供商的后缀集成具体说明进行操作,例如:
如果其他电子邮件提供商提供此功能,则该过程应该类似。如果您的电子邮件帐户是由其他提供商提供的,请参阅他们有关relayhost
地址、端口、安全性和身份验证的文档。
请注意特定中继电子邮件提供商的要求,例如为 Gmail 启用安全性较低的应用程序,否则 postfix 将被拒绝访问和连接到 Gmail。
postfix
。我正在根据要求发布(希望)从雅虎邮件发送电子邮件的完整指南。本指南与您使用 Gmail (如此处所示)以及可能其他服务器时所需的内容略有不同,但这种特殊性对于使其正常工作至关重要。
注:我已经实际测试过,并且在我的目标地址中成功收到了电子邮件。 它也适用于本地(传出、传入)地址。
Raffa的两个回答(1、2 )和进一步的评论对我帮助很大。但仍然需要进行大量的阅读和修改才能使其发挥作用。
安装postfix
和其他包。
$ sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
Run Code Online (Sandbox Code Playgroud)
安装后的配置将显示。如果没有,请使用$ sudo dpkg-reconfigure postfix
. 对于连续的屏幕,请使用: 1. Satellite 系统(但可能不相关,因为稍后您将修改 postfix 配置文件),2. myubuntubox
、 3. [smtp.mail.yahoo.com]:465
、 4. root
、 5 及以下:保留默认值。
postfix
允许您的雅虎帐户与应用程序密码进行交互。这是一个一次性密码,可避免将雅虎邮件密码留在您的电脑中。转到https://login.yahoo.com/account/security,帐户安全->应用程序密码并生成密码。稍后您将不得不使用它。如果不使用两步验证,也可能使用 2SV,那么这肯定有效。
请注意,在 Gmail 中,“应用程序密码只能用于启用了两步验证的帐户”。(来源)。在这种情况下,您将使用应用程序密码,因为postfix
与许多其他应用程序一样,它是“不太安全的应用程序”。
将以下行添加到/etc/postfix/main.cf
relayhost = [smtp.mail.yahoo.com]:465
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd_yahoo
smtp_sasl_security_options = noanonymous
smtp_sasl_auth_enable = yes
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtp_generic_maps = regexp:/etc/postfix/regex_map_yahoo
Run Code Online (Sandbox Code Playgroud)
如果出现在/etc/postfix/main.cf
注释行中
smtp_tls_security_level=may
Run Code Online (Sandbox Code Playgroud)
带有初始哈希标记#
以避免出现警告消息。我不会发布完整的文件。如果您发现这些说明有问题,请发布反馈。
创建/编辑/etc/postfix/sasl_passwd_yahoo
使其包含
[smtp.mail.yahoo.com]:465 nosuch0000@yahoo.com:<password>
Run Code Online (Sandbox Code Playgroud)
<password>
应替换为生成的应用程序密码。
使用以下命令
$ sudo chmod 0600 /etc/postfix/sasl_passwd_yahoo
$ sudo postmap /etc/postfix/sasl_passwd_yahoo
$ sudo touch /etc/postfix/regex_map_yahoo
$ sudo chmod 0600 /etc/postfix/regex_map_yahoo
$ sudo nano /etc/postfix/regex_map_yahoo
<---- Creating/editing the file ---->
$ sudo postmap /etc/postfix/regex_map_yahoo
$ sudo systemctl restart postfix.service
Run Code Online (Sandbox Code Playgroud)
创建/编辑时/etc/postfix/regex_map_yahoo
,其内容应该是
/.+@myubuntubox/ nosuch0000@yahoo.com
Run Code Online (Sandbox Code Playgroud)
发送电子邮件,例如
$ echo "This is the body of an encrypted email" | mail -s "This is the subject line" emaildest@gmail.com
Run Code Online (Sandbox Code Playgroud)