云服务器发送邮件的两种方式

| |

我翻到了网站日志access.log文件,希望通过一个python脚本定期分析我的网站日志,并将分析结果推送给我,最好是能直接发到我的微信上。但是我现在还没有办法实现微信通知,只能将日志报告发到我的邮箱里。下面介绍两种云服务器主机发邮件的方式。

腾讯云提供的免费邮件额度

这种方法适合有自己域名的场景使用,比较正规一点。
第一种是使用我的域名 weiyeji.com ,通过子域名mail.weiyeji.com来发邮件,我的域名和服务器都是在腾讯云上面买的,因此可以很方便地使用腾讯云提供的工具来实现。参阅这里的说明文档:SMTP 发送邮件指南,邮件配置,身份验证和配置相关问题,有点麻烦,但是仔细看看就感觉还行。值得一提的是,如果子域名仅作为邮箱使用,那么就不需要再次备案,这就方便多了。
腾讯云对所有腾讯云用户提供1000封邮件的免费额度,这对我的个人网站来说显然够用一段时间的。
大体步骤是:进入邮件推送控制台-右侧工具栏邮件配置-发信域名-新建发信域名-验证。
按照弹出的提示框,转到域名解析控制台,按要求新建4个域名解析,指向我们需要的域名即可。
然后:发信地址-新建发信地址-配置 SMTP 密码,完成后按照文档SMTP 服务地址的示例发邮件即可。

tips:亲测,一封群发邮件按多封邮件计算……

ubuntu系统邮箱

云服务本身是一台不关机的电脑主机,Ubuntu系统可以配置系统邮箱,来对外发送邮件。
此时可以使用自己的域名,也可以不使用自己的域名。

可以使用服务器的主机名(hostname)来作为邮件服务器标识。

以下是一些简单的步骤来配置系统邮箱,使用主机名而非域名:

1. 安装 Postfix:

bash

sudo apt-get update
sudo apt-get install postfix

在安装过程中,选择 "Internet Site" 并使用服务器的主机名。

2. 配置 Postfix:

编辑 Postfix 配置文件:

bash

sudo nano /etc/postfix/main.cf

确保以下配置项设置正确:

ini

myhostname = your-hostname 
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

将 your-hostname 替换为服务器主机名

3. 重启 Postfix:

bash

sudo service postfix restart

4. 测试发送邮件:

使用 mail 命令测试系统是否能够发送邮件:

bash

echo "This is a test email." | mail -s "Test Subject" your-email@example.com

确保将 your-email@example.com 替换为你的实际邮箱地址。查看邮箱是否收到了测试邮件。

这样,你就可以在没有域名的情况下配置系统邮箱。请注意,由于缺少域名,你的邮件可能会被一些邮件服务提供商标记为垃圾邮件,因为缺少常见的邮件身份验证和域名验证信息。如果你需要更高的可信度,考虑使用域名并进行相应的 DNS 配置。

参阅:
- 腾讯云官方文档 SMTP 发送邮件指南
- chatGPT3.5
- 博客园:出现cannot send message: Process exited with a non-zero status错误