如何设置 ssmtp 以通过 Gmail 帐户发送
这里的一些步骤起初可能看起来很奇怪,但基本原理放在脚注中,希望能解释原因。
首先在 gmail 上创建一个备用帐户,您将仅用于发送电子邮件。例如,如果您的普通帐户是user@gmail.com
,请使用新创建的密码创建一个帐户user.noreply@gmail.com
,该密码仅用于此帐户 [1]。
设置新帐户以将所有电子邮件转发到普通帐户 [2] 并在帐户设置下添加您使用的所有其他电子邮件地址 [3]。
然后安装 ssmtp(在 Debian: 上aptitude install ssmtp
)并编辑 ssmtp 的配置文件/etc/ssmtp/ssmtp.conf
:
根=用户@gmail.com
mailhub=smtp.gmail.com:587
使用STARTTLS=YES
AuthUser=user.noreply
AuthPass=passwdusedonlyforthisaccount
FromLineOverride=YES
并通过编辑来配置本地邮件传递,/etc/ssmtp/revaliases
假设您的本地登录为localuser
:
根:user@gmail.com:smtp.gmail.com:587
本地用户:user@gmail.com:smtp.gmail.com:587
确保所有应该能够发送电子邮件的用户都可以读取这两个配置文件 [4]。
通过例如mailx
(在 Debian: 上aptitude install bsd-mailx
)测试设置:
echo '测试,一,二' | mailx -s 'test 1' user@gmail.com
希望这可以帮助。
[1] 新的 gmail 用户名和密码将对所有可以登录您计算机的人可见,因此您不希望此帐户以任何方式成为关键,这意味着如果有人可以访问它,您可以立即关闭它.
[2] 如果您发送的某些电子邮件被退回给您,您可能想了解它,并且实际上存在会很乐意回复来自johnsmith.noreply
.
From
[3]如果 Gmail 无法识别地址,它将重写电子邮件的标题。
[4] Ssmtp 以发送邮件的本地用户身份运行,因此用户需要对配置文件具有读取权限。