简单示例:

简单示例:

您好,我在网上查看了许多不同的指南,了解如何在设备/服务器出现问题时从 ubuntu 18.04 向我的 gmail 发送系统邮件 - 但找不到一个我认为有意义的简单指南?有人能给我一些建议吗?

我不想设置邮件服务器,但作为初学者,我会尽量保持简单。如果我可以使用 google smtp 服务器来做到这一点,那将是一个优势,而不必弄乱我自己的域名 :)

答案1

安装获取处理邮件的基本系统所需的软件包:

sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules

接下来修改(以 root 身份)配置文件,/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 = noanonymous
smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_CApath = /etc/ssl/certs
smtp_use_tls = yes

接下来创建/修改(以 root 身份)/etc/postfix/sasl_passwd以包含:

[smtp.gmail.com]:587    [email protected]:PASSWORD

确保文件的权限正确,否则可能会出错:

sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

最后重新加载 postifx:

sudo /etc/init.d/postfix reload

现在您可以运行测试:

echo "Test mail thingy" | mail -s "Test Postfix Subject" [email protected]

您应该会收到一封来自您配置的 SMTP 帐户的电子邮件。

答案2

为了将本地(系统)电子邮件发送到外部电子邮件地址,除了按照当前接受的答案中建议的那样安装邮件处理系统外,还需要修改该/etc/aliases文件。邮件系统读取此文件以确定所有内部邮件(例如由 cron 作业或其他系统错误生成的邮件)的最终收件人。建议的/etc/aliases文件如下:

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: user
user: [email protected]

其中userusername应替换为您的系统的相应条目。此文件将发送给所有标准伪用户的所有电子邮件重定向到 root 用户,然后最后两行将电子邮件重定向到 root 本地真实用户,最后重定向到外部 gmail。

一旦/etc/aliases文件更新,就需要运行命令

sudo newaliases

以便让系统注意到这些变化。

答案3

我使用 sSMTP 来完成此操作,因为这比完全成熟的 postfix 设置更简单/更小。(出错的可能性更小)。请注意,此配置仅允许从安装它的机器发出邮件。它不支持传入电子邮件的传递。

这确实是一个最多需要 5 分钟进行设置的问题。

为了举例说明,在下面的示例配置中以下假设是正确的:

  • 我们正在使用端口 2525 上的 ip 地址向同一网络中的本地计算机发送邮件
  • 我们不使用加密或身份验证

您可以从手册页或者使用谷歌来帮助您进行特定配置(搜索ssnmp+mail+to+gmail:)

简单示例:

# sudo -i
# apt-get update && apt-get install ssmtp
# nano /etc/ssmtp/ssmtp.conf

添加以下内容以适合您的环境:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
[email protected]

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=192.168.2.88:2525

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=hostname.domain

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

测试:

# ssmtp [email protected]
To: [email protected]
From: [email protected]
Subject: test email
[enter]
my testing 1,2,3
[ctrl-d]

增添思考的空间

我使用它来将电子邮件转发到本地 Docker 实例,该实例将我的电子邮件转换为 Telegram 聊天消息,并将其发送到我的 Telegram 群组中,在那里我将我的所有系统警报从我的家庭自动化系统汇总到 SMNP 警报中,并且还按照上述系统电子邮件发送本地警报/警告。虽然这对 90% 的读者来说可能毫无用处,但它可能会让你们所有人记住,外发系统电子邮件可能只是交付链的第一步,从中可以获得更多 :)

享受

相关内容