Ric*_*uez 4 configuration email postfix
我有一个在 Digital Ocean 上运行 Ubuntu 13.10 的 VPS。
我想安装postfix
在服务器上,但我希望它能够在系统消息想要发送到 root 时仅将电子邮件发送到我的电子邮件地址。
现在我已postfix
安装为local only
. 这会将消息发送到/var/mail/root
。
相反,我希望我的消息发送到我的真实电子邮件 ( example@gmail.com
),但我不想允许其他用户/站点发送电子邮件(例如来自 PHP 的mail()
)。
这可能吗?
做这件事有很多种方法
您可以在此处找到详细的文章。(请考虑Zulakis在下面关于安全性的评论:我让ssmtp解决方案在这里供您参考,但更喜欢postfix解决方案)
安装ssmtp
sudo aptitude install ssmtp
Run Code Online (Sandbox Code Playgroud)
编辑配置文件:
sudo vim /etc/ssmtp/ssmtp.conf
Run Code Online (Sandbox Code Playgroud)
并使用您的 Gmail 帐户进行配置:
root=username@gmail.com
mailhub=smtp.gmail.com:587
hostname=username@gmail.com
UseSTARTTLS=YES
AuthUser=username
AuthPass=password
FromLineOverride=yes
Run Code Online (Sandbox Code Playgroud)
如果您想使用 postfix 安装,您可以将其配置为使用您的 gmail 帐户。您可以在此处找到详细的文章。
检查您是否拥有所有需要的依赖项
mailutils libsasl2-2 ca-certificates libsasl2-modules
Run Code Online (Sandbox Code Playgroud)
编辑 postfix 的配置:
sudo vim /etc/postfix/main.cf
Run Code Online (Sandbox Code Playgroud)
并使用您的 Gmail 帐户进行配置:
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
Run Code Online (Sandbox Code Playgroud)
使用您的密码创建文件:
vim /etc/postfix/sasl_passwd
Run Code Online (Sandbox Code Playgroud)
并添加以下几行
[smtp.gmail.com]:587 USERNAME@gmail.com:PASSWORD
Run Code Online (Sandbox Code Playgroud)
我不完全确定你的意思
我不想让其他用户/站点发送电子邮件(例如来自 PHP 的 mail())
但是为了阻止每个用户或每个域的邮件访问,您可以编辑以下文件:
vim /etc/mail/access
Run Code Online (Sandbox Code Playgroud)
并添加规则,例如:
To:a1@server.vikas.com REJECT # Reject a1 user from recieving mails
From:a1@server.vikas.com REJECT # Reject a1 user from sending mails
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
归档时间: |
|
查看次数: |
3958 次 |
最近记录: |