当前位置: 首页 > news >正文

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发现错误。

http://www.dtcms.com/a/184274.html

相关文章:

  • Java多态详解
  • Java高频面试之并发编程-15
  • LVGL(lv_btn按键类)
  • 游戏引擎学习第271天:生成可行走的点
  • CTFd CSRF 校验模块解读
  • Java 中 AQS 的实现原理
  • 深入理解设计模式之原型模式(Prototype Pattern)
  • 复现nn-Unet模型 实验报告
  • 【我的创作纪念日】512
  • 编程日志5.3
  • Day21打卡—常见降维算法
  • 免安装 + 快速响应Photoshop CS6 精简版低配置电脑修图
  • Linux PCI 驱动开发指南
  • AI日报 · 2025年05月11日|传闻 OpenAI 考虑推出 ChatGPT “永久”订阅模式
  • 【React中useRef钩子详解】
  • 【数据结构入门训练DAY-31】组合的输出
  • 【音视频工具】MP4BOX使用
  • k8s 资源对比总结
  • 通过 Azure DevOps 探索 Helm 和 Azure AKS
  • istio in action之应用弹性与容错机制
  • 理解页内碎片与页外碎片:分页存储管理的关键问题
  • 长短期记忆网络(LSTM)深度解析:从理论到实践的全方位指南
  • 23、DeepSeek-V2论文笔记
  • LangGraph框架中针对MCP协议的变更-20250510
  • YOLOv2框架深度解析
  • Go语言实现优雅关机和重启的示例
  • 九、STM32入门学习之WIFI模块(ESP32C3)
  • TIME - MoE 模型代码 4——Time-MoE-main/run_eval.py
  • 图形化编程革命:iVX携手AI 原生开发范式
  • MNIST 数据并行 Data Parallel - DP