ubuntu使用Postfix外部SMTP代理发送邮件

需求

ubuntu使用指令发送邮件。普通的mail指令通常被识别为垃圾邮件,且由于ubuntu主机邮箱地址不正规,执行指令几次后常被鉴定为风险地址从而禁止。对此,使用外部SMTP代理,驱动正规地址(例如qq邮箱)向指定邮箱发送。

安装软件

# 安装软件,安装界面中保持默认配置即可
sudo apt install mailutils

配置用于发送邮件的SMTP服务器

新建sudo vim /etc/postfix/sasl_passwd

[smtp.qq.com]:587 qqcode@qq.com:password

其中password是QQ邮箱授权码。进入“QQ邮箱 -> 账号与安全 -> 安全设置 -> POP3/IMAP/SMTP/Exchange/CardDAV 服务”。
在这里插入图片描述
接着执行sudo postmap /etc/postfix/sasl_passwd,成功的话会生成sasl_passwd.db

配置主机地址映射

当使用QQ作为SMTP服务器时,要求ubuntu主机邮件名称和上一节授权的QQ邮箱相同(gmail则不用),如下:
新建sudo vim /etc/postfix/generic

user@user qqcode@qq.com

其中user@user是我的主机自动生成的地址。
然后执行sudo postmap /etc/postfix/generic,生成generic.db

修改权限

sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db /etc/postfix/generic /etc/postfix/generic.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db /etc/postfix/generic /etc/postfix/generic.db

Postfix配置

修改sudo vim /etc/postfix/main.cf,添加:

relayhost = [smtp.qq.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_generic_maps = hash:/etc/postfix/generic

重启 Postfix 服务:sudo service postfix restart

测试

echo "任务完成,结果已保存" | mail -s "你好啊" qqcode@qq.com
如果成功,则可以收到自己给自己发送的qq邮件。

可以查看/var/log/mail.log发现错误。

### 安装和配置Postfix邮件服务 #### 准备工作 为了确保服务器环境的安全性和稳定性,在开始之前应该更新系统的软件包列表并安装必要的安全补丁。 ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装Postfix 通过APT仓库可以直接安装Postfix及其依赖项。执行如下命令来完成安装过程: ```bash sudo apt install postfix -y ``` 在安装过程中会弹出一个交互界面询问关于Postfix的主要设置选项,可以选择`Internet Site`作为默认配置类型,并输入域名用于标识该SMTP服务器[^1]。 #### 配置防火墙允许Postfix通信 如果启用了UFW防火墙,则需开放相应的端口以便让外部设备能够访问到此台机器上的Postfix服务。可以运行下面这条指令实现这一目的: ```bash sudo ufw allow Postfix ``` 这一步骤确保了防火墙不会阻止合法的电子邮件流量进出本机[^3]。 #### 测试发送功能 为了验证Postfix能否正常运作以及正确路由邮件消息,建议部署一款简单的邮件客户端工具来进行测试。这里推荐使用`s-nail`这款轻量级的应用程序充当Mail User Agent(MUA): ```bash sudo apt-get install s-nail -y ``` 之后便可以通过它尝试向其他邮箱地址发出一封测试信件以确认整个流程无误。 #### 修改主配置文件(可选) 对于更高级别的定制化需求来说,可能还需要编辑位于/etc/postfix/main.cf路径下的全局参数定义文档。例如更改监听接口、设定发件人身份等操作均在此处完成。不过一般情况下,默认值已经足够满足大部分场景的需求了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值