Linux使用ssmtp发送邮件

ssmtp是一个简单的Linux下,通过SMTP发送邮件的命令行工具。由于我希望给我的邮箱每天发送我的多台VPS的每日日志、crontab记录等信息,同时我自己有自己私有的SMTP服务器,ssmtp刚好是一个可以满足我需求的一个轻量工具。这里记录一下ssmtp的配置。

首先通过apt等包管理器来安装ssmtp。

下一步就是编辑配置文件。配置文件位于/etc/ssmtp/ssmtp.conf。由于我是私有的SMTP服务器,且我的VPS均处于一个虚拟的内网,我在SMTP开放了基于IP地址的白名单,所以配置很简单,不需要配置身份认证。

主要的配置如下:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
# uid小于1000的用户的邮件发件人
root=postmaster

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
# SMTP服务器
mailhub=

# Where will the mail seem to come from?
# 重定向的发件域
#rewriteDomain=

# The full hostname
# 发件的域名
hostname=

# 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

我这里完全自行指定发件人,所以我这里比较关键的就是FromLineOverride设为YES,并配置好mailhub就好。

如果想要是用公用的SMTP服务器,并进行身份认证,需要正确设置好重定向域和发件人,否则会被SMTP服务器拒绝。同时需要配置AuthUserAuthPass。然后按需设置UseTLSUseSTARTTLS

配置好后,执行下面的命令可以测试发件是否正常:

ssmtp 收件人
To: 收件人
From: 发件人
Subject: 主题

内容
(CTRL+D)

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据