您的位置  > 互联网

如何在Linux上使用Gmail的SMTP服务器发送邮件?

的 Gmail 服务是最可靠的免费 SMTP 服务器之一。 要从应用程序发送电子邮件通知,您只需将 Gmail 的 SMTP 服务器地址和您的凭据添加到应用程序即可。

使用 Gmail 的 SMTP 服务器时存在一些限制。 这些限制主要是为了阻止那些经常滥用服务器发送垃圾邮件和使用电子邮件营销的人。 例如,您一次只能向最多 100 个地址发送邮件,并且一天内的收件人不能超过 500 个。 同样,如果您不想被贴上垃圾邮件发送者的标签,则不能发送太多无法送达的电子邮件。 当您达到任一限制时,您的 Gmail 帐户将被暂时锁定一天。 简而言之,Gmail 的 SMTP 服务器非常适合个人使用,但不适合企业批量邮件。

说了这么多,是时候向您展示如何在 Linux 环境中使用 Gmail 的 SMTP 服务器了。

Gmail SMTP 服务器设置

如果您想使用 Gmail 的 SMTP 服务器从您的应用程序发送电子邮件,请记住下面的详细说明。

确切的配置将根据应用程序而有所不同。 在本教程的其余部分中,我将向您展示一些在 Linux 上使用 Gmail SMTP 服务器的应用程序示例。

从命令行发送邮件

作为第一个示例,让我们尝试最基本的电子邮件功能:使用 Gmail SMTP 服务器从命令行发送电子邮件。 为此,我将使用名为 mutt 的命令行邮件客户端。

首先安装mutt:

对于基于 - 的系统:

  1. $ sudo apt-get install mutt

对于基于 Red Hat 的系统:

  1. $ sudo yum install mutt

创建一个 mutt 配置文件(~/.),并在文件中指定 Gmail SMTP 服务器信息,如下所示。 将替换为您自己的 Gmail ID。 请注意,此配置仅用于发送电子邮件(不用于接收电子邮件)。

  1. $ vi ~/.muttrc

  1. set from = "@gmail.com"

  2. set realname = "Dan Nanni"

  3. set smtp_url = "smtp://@smtp.gmail.com:587/"

  4. set smtp_pass = ""

一切准备就绪,使用mutt发送邮件:

  1. $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com

要将附件添加到电子邮件,请使用“-a”选项

  1. $ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg

使用 Gmail SMTP 服务器意味着电子邮件将显示为从您的 Gmail 帐户发送。 换句话说,收件人会将您的 Gmail 地址视为发件人地址。 如果您想使用自己的域名作为邮件发件人,则需要使用Gmail SMTP转发服务。

服务器重新启动时发送电子邮件通知

如果您在虚拟专用服务器 (VPS) [5] 上运行一些重要网站,建议监控 VPS 的重启行为。 作为一个更实际的示例,让我们看看如何为 VPS 上的每个重新启动事件设置电子邮件通知。 本文假设您在 VPS 上使用它,并向您展示如何创建用于自动电子邮件通知的自定义启动服务。

首先创建以下.sh,它负责电子邮件通知。

  1. $ sudo vi /usr/local/bin/reboot_notify.sh

  1. #!/bin/sh

  2. echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com

  1. $ sudo chmod +x /usr/local/bin/reboot_notify.sh

在此脚本中,我使用“-F”选项,它指定系统范围的 mutt 配置文件位置。 因此,不要忘记创建 /etc/ 文件并填写前面所述的 Gmail SMTP 信息。

现在让我们创建一个自定义服务,如下所示。

  1. $ sudo mkdir -p /usr/local/lib/systemd/system

  2. $ sudo vi /usr/local/lib/systemd/system/reboot-task.service

  1. [Unit]

  2. Description=Send a notification email when the server gets rebooted

  3. DefaultDependencies=no

  4. Before=reboot.target

  5. [Service]

  6. Type=oneshot

  7. ExecStart=/usr/local/bin/reboot_notify.sh

  8. [Install]

  9. WantedBy=reboot.target

创建服务后,添加并启动服务。

  1. $ sudo systemctl enable reboot-task

  2. $ sudo systemctl start reboot-task

从现在开始,每次 VPS 重新启动时,您都会收到一封通知电子邮件。

通过服务器使用情况监控发送电子邮件通知

作为最后一个示例,让我向您展示一个现实应用程序 Monit[6],它是一个非常有用的服务器监控应用程序。 它具有全面的 VPS[7] 监控功能(如 CPU、内存、进程、文件系统)和电子邮件通知功能。

如果您想接收 VPS 上 Monit 生成的任何事件的电子邮件通知,您可以在 Monit 配置文件中添加以下 SMTP 信息。

  1. set mailserver smtp.gmail.com port 587

  2.    username "" password ""

  3.    using tlsv12

  4. set mail-format {

  5. from: <your-gmail-ID>@gmail.com

  6. subject: $SERVICE $EVENT at $DATE on $HOST

  7. message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.

  8.       Yours sincerely,

  9.          Monit

  10.  }

  11. # the person who will receive notification emails

  12. set alert alice@yahoo.com

这是 Monit 由于 CPU 过载而发送的电子邮件通知的示例。

总结

正如您所看到的,有很多不同的方法可以使用 Gmail 等免费 SMTP 服务器。 但再次请记住,免费的 SMTP 服务器不适合商业用途,仅适合个人项目。 无论您使用哪个应用程序使用 Gmail SMTP 服务器,都可以随时分享您的用例。

通过:

作者:Dan Nanni[8]译者:[9]校对者:[10],wxy[11]

本文由 LCTT 原创编译[12],Linux China 自豪推出

[1]:

[2]:

[3]:

[4]:

[5]:

[6]:

[7]:

[8]:

[9]:

[10]:

[11]:

[12]: