如何通过Gmail帐户从bash发送电子邮件?

时间:2016-02-12 04:51:13

标签: ruby linux bash email gmail

我有一个bash脚本,可以定期检查某个ruby脚本是否已启动。 ruby脚本必须全天候运行。如果不是,则bash脚本必须发送电子邮件。

我对如何确保红宝石总是向上的愿景。那么通过gmail从bash发送电子邮件的最简单方法是什么?

或者是否有更好的方式通知管理员有问题?

2 个答案:

答案 0 :(得分:0)

这是我在我的一个Raspberry PI上的解决方案。它使用我的Gmail帐户发送电子邮件。我确实使用" SSMTP"作为MTA和" mailx"作为组成电子邮件的命令行工具。 mailx通过cron激活。

配置非常简单。这些是/etc/ssmtp/ssmtp.cnf中我的SSMTP配置的相关部分:

# The person who gets all mail for userids < 1000
root=xyz@gmail.com
# The place where the mail goes
mailhub=smtp.gmail.com:587
# The full hostname (FQDN of the Linux box used to send emails)
hostname=planck.xyz.it
# Gmail account username & passed:
AuthUser=xyz@gmail.com
AuthPass=xyz
# Other config params:
UseTLS=YES
UseSTARTTLS=YES
FromLineOverride=YES

我在启动时自动启动了SSMTP。

然后,您可以从命令行发送电子邮件。我每晚都会收到Raspberry Pi的统计数据。这是我的crontab条目:

00 03 * * * /usr/local/bin/xyz.sh | mailx -s "xyz xyz at $(date)" xyz.xyz@xyz.com

您当然可以 - 通过mailx发送电子邮件到任何有效的电子邮件地址

答案 1 :(得分:0)

  

那么通过gmail从bash发送电子邮件的最简单方法是什么?

我将/dev/null重定向到mutt,使其无需用户界面即可发送电子邮件CLI。

我在 .bashrc 中保留以下功能:

# Usage: em <list-of-contacts> <mutt-options>
em () { 
    local contacts=()
    while [[ -n $1 && $1 != -* ]]; do
        contacts+=("$1")
        shift
    done
    mutt "$@" -- "${contacts[@]}" < /dev/null
}

.mutt-alias 中,我保留了一个联系人及其电子邮件列表,这样我就可以通过执行以下操作方便地发送电子邮件:

em daniel david -s 'Hello Daniel and David' -a /home/rany/Books/K_and_R.pdf

将向Daniel和David发送电子邮件,主题为 Hello Daniel和David 以及附件 /home/rany/Books/K_and_R.pdf

我有时想写一个非常短的电子邮件正文,所以我执行以下Bash命令:

em daniel david -s 'Hi guys' -i <(printf '%s\n' "Check out this too!")

在为管理员撰写和发送简短通知时,这可能对您有所帮助。

如果您碰巧像我一样运行Archlinux,请参阅Mutt Installation,了解如何使用IMAP,POP3,Maildir和SMTP配置设置Mutt。