我对配置邮件系统没有经验。我正在使用 Ubuntu #54~20.04.1-Ubuntu
。
如何配置我的计算机以使用 Gmail 帐户发送电子邮件postfix
?
我的意思是不要涉及任何其他付费邮件服务器或域名(编辑:我可以将我的电脑配置为服务器,但我的意思是避免需要在 DNS 中进行付费注册)。
这可能吗?
我尝试了一些方法,下面将描述这些方法,并引用我使用的来源。
我读过其他来源,但我不知道该怎么做。据我所知,大多数其他来源都假设我有其他可以使用的服务器或地址(通常以 为例example.com
),而我没有,我想我可以放弃。
我跟着本基本指南,这对很多人来说似乎很有用。发布后
echo "Test mail thingy" | mail -s "Test Postfix Subject" [email protected]
我没有收到电子邮件
[email protected]
,这是相关的尾部/var/log/mail.log
(添加了行号以供参考)1 Apr 18 08:55:03 MyComputer postfix/postfix-script[1092678]: refreshing the Postfix mail system 2 Apr 18 08:55:03 MyComputer postfix/master[3124]: reload -- version 3.4.13, configuration /etc/postfix 3 Apr 18 08:55:24 MyComputer postfix/pickup[1092682]: 06004443921: uid=1000 from=<MyUser@MyComputer> 4 Apr 18 08:55:24 MyComputer postfix/cleanup[1092704]: 06004443921: message-id=<[email protected]_URL> 5 Apr 18 08:55:24 MyComputer postfix/qmgr[1092683]: 06004443921: from=<MyUser@MyComputer>, size=391, nrcpt=1 (queue active) 6 Apr 18 08:55:24 MyComputer postfix/error[1092706]: 06004443921: to=<[email protected]>, relay=none, delay=0.03, delays=0.02/0/0/0.01, dsn=5.0.0, status=bounced ([smtp.gmail.com]:587) 7 Apr 18 08:55:24 MyComputer postfix/cleanup[1092704]: 09DD4443938: message-id=<[email protected]_URL> 8 Apr 18 08:55:24 MyComputer postfix/bounce[1092707]: 06004443921: sender non-delivery notification: 09DD4443938 9 Apr 18 08:55:24 MyComputer postfix/qmgr[1092683]: 09DD4443938: from=<>, size=2359, nrcpt=1 (queue active) 10 Apr 18 08:55:24 MyComputer postfix/qmgr[1092683]: 06004443921: removed 11 Apr 18 08:55:24 MyComputer postfix/local[1092708]: 09DD4443938: to=<MyUser@MyComputer>, relay=local, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox) 12 Apr 18 08:55:24 MyComputer postfix/qmgr[1092683]: 09DD4443938: removed
我不知道如何解释这个日志。我注意到第 11 行显示
status=sent
。我添加了(
-a "From: [email protected]"
參考)。我也没有收到邮件。/var/log/mail.log
与上面相比有变化的行标有*
。现在我status=bounced
在第 11 行。3*Apr 18 09:54:43 MyComputer postfix/pickup[1098199]: 0353244348F: uid=1000 from=<[email protected]> <-- CHANGED 4 Apr 18 09:54:43 MyComputer postfix/cleanup[1098387]: 0353244348F: message-id=<[email protected]_URL> 5*Apr 18 09:54:43 MyComputer postfix/qmgr[1098200]: 0353244348F: from=<[email protected]>, size=384, nrcpt=1 (queue active) <-- CHANGED 6 Apr 18 09:54:43 MyComputer postfix/error[1098389]: 0353244348F: to=<[email protected]>, relay=none, delay=0.03, delays=0.02/0/0/0, dsn=5.0.0, status=bounced ([smtp.gmail.com]:587) 7 Apr 18 09:54:43 MyComputer postfix/cleanup[1098387]: 06E2F4436C3: message-id=<[email protected]_URL> 8 Apr 18 09:54:43 MyComputer postfix/bounce[1098390]: 0353244348F: sender non-delivery notification: 06E2F4436C3 9 Apr 18 09:54:43 MyComputer postfix/qmgr[1098200]: 06E2F4436C3: from=<>, size=2364, nrcpt=1 (queue active) 10 Apr 18 09:54:43 MyComputer postfix/qmgr[1098200]: 0353244348F: removed 11*Apr 18 09:54:43 MyComputer postfix/error[1098389]: 06E2F4436C3: to=<[email protected]>, relay=none, delay=0.01, delays=0/0/0/0, dsn=5.0.0, status=bounced ([smtp.gmail.com]:587) <-- CHANGED 12 Apr 18 09:54:43 MyComputer postfix/qmgr[1098200]: 06E2F4436C3: removed
笔记:
在今天尝试之前,我已经安装了 postfix。我不记得我什么时候安装的,为什么安装它。我也不记得我是否浏览过 postfix 配置屏幕。我知道我能做到。和
sudo dpkg-reconfigure postfix
,但我不知道哪个是正确的选择。这添加
smtp_tls_CAfile = /etc/postfix/cacert.pem
到/etc/postfix/main.cf
,而不是smtp_tls_CApath ...
,后来cat
又添加到.pem
。cacert.pem
我没有cacert.pem
。我猜如果配置正确,这两个选项都可以工作。我有很多软链接
/etc/ssl/certs/
。我不确定是否需要添加任何内容。我在 中使用了我的实际源 gmail 和相应的密码
/etc/postfix/sasl_passwd
。
有关的:
- 如何配置 postfix 通过 gmail 发送电子邮件(2FA 问题)?
- 设置通过 postfix 向 GMAIL 发送邮件
用来
ssmtp
代替postfix
。 - 将 Gmail 设置为默认发送文件方式 使用 gnome-gmail 或 Desktop-webmail。
- https://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/
- 从 Gmail 帐户发送电子邮件到本地 Ubuntu 服务器
- Ubuntu 20.04 邮件设置设置默认发件人地址
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-18-04
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-20-04
- https://www.linuxbabe.com/mail-server/setup-basic-postfix-mail-sever-ubuntu
- https://www.cyberciti.biz/faq/how-to-configure-postfix-relayhost-smarthost-to-send-email-using-an-external-smptd/
- https://ubuntu.com/server/docs/mail-postfix
- https://devops.ionos.com/tutorials/configure-a-postfix-relay-through-gmail-on-ubuntu/
答案1
看来您没有使用中继电子邮件/主机,而是尝试直接从您的机器发送电子邮件,正如您所解释的,该机器没有合格的域名……更不用说其他要求,如反向 DNS 记录和 MX 记录。
您的日志中清楚地表明没有使用有效的中继:
中继=本地
和
中继=无
您一定想知道为何您的电子邮件会被退回!
无论你做什么,它们都会永远反弹。
域名是一个具有常见 TLD 的名称,如 example.com、example.net……等等,必须与发送机器的 IP 绑定……您需要这个。
发送 IP机器也必须与发送域名绑定,使用名为反向 DNS 记录只能由您的 ISP(为您提供 IP 地址的公司)添加
MX 记录是另一种类型的 DNS 记录,它告诉电子邮件服务器/提供商将您的电子邮件消息路由到何处...您也需要它。
这些是现代电子邮件提供商接受来自您的机器的电子邮件消息的要求......否则这些电子邮件会被退回/拒绝。
如果您愿意采用这种方式并成为自己的电子邮件提供商,那么现在您知道该怎么做了。
否则,使用继电器... 请参阅这个答案了解使用说明。
答案2
通过 Gmail发送电子邮件的分步指南postfix
。
我终于成功发送了电子邮件通过 Gmail。Raffa 的两个回答(1,2) 和进一步的评论对我帮助很大。但仍需要进一步研究和修改。
这里,(希望)有完整的指南。
安装
postfix
和其他软件包。$ sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
安装后配置将显示出来。如果没有,请使用
$ sudo dpkg-reconfigure postfix
。对于后续屏幕,请使用:1. 卫星系统,2.MyServer
(替换为您的服务器名称),3.[smtp.gmail.com]:587
,4.root
,5 及以下:保留默认设置。使您的 Gmail 帐户能够与 进行交互
postfix
。有两个选项可供选择。4.1. (首选,更安全的方法)如果尚未激活,请激活 Google 帐户中的两步验证。然后生成应用密码用于 Postfix。稍后您将需要此密码。
4.2. 如果不使用两步验证,请启用安全性较低的应用程序。
将以下行添加到
/etc/postfix/main.cf
relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_use_tls = yes
创建/编辑
/etc/postfix/sasl_passwd
以便包含[smtp.gmail.com]:587 [email protected]:<password>
<password>
如果不使用两步验证,则应替换为账户密码,或者生成的应用密码否则。使用以下命令
$ sudo chmod 600 /etc/postfix/sasl_passwd $ sudo postmap /etc/postfix/sasl_passwd $ sudo systemctl restart postfix.service
使用以下方式发送电子邮件
$ echo "This is the body of an encrypted email" | mail -s "This is the subject line" [email protected]