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

如何在 Sendmail 中配置外部 SMTP 中继发送邮件 ?

Sendmail 是一个开源邮件传输代理(MTA),它提供了一种有效的方式来管理和传输电子邮件。然而,对于需要发送大量电子邮件的组织来说,仅仅依靠 Sendmail 可能是不够的。这就是通过外部 SMTP 服务器转发电子邮件的用处所在。本文将逐步指导如何配置 Sendmail 以通过外部 SMTP 服务器转发电子邮件。

必备条件

在开始配置之前,需要准备以下信息:

  • 外部 SMTP 服务器的主机名或 IP 地址
  • 外部 SMTP 服务器使用的端口号(通常为 25, 587 或 465)
  • 登录到外部 SMTP 服务器所需的身份验证凭证(用户名和密码)

Step 1: 安装 Sendmail

如果您的系统上还没有安装 SendMail,则可以按照以下步骤安装它:

On an RHEL-based system (Fedora / CentOS)

sudo yum install sendmail sendmail-cf

On a Debian-based system (Ubuntu / Debian)

sudo apt install sendmail sendmail-cf

Step 2: 创建 SMTP 凭证文件

/etc/mail目录中创建一个名为“smtp-auth-creds”的文件。

sudo nano /etc/mail/smtp-auth-creds

将以下行添加到文件中,将 username 替换为您的用户名,将 password 替换为您的密码

AuthInfo:smtp.example.com "U:username" "P:password" "M:PLAIN"

保存文件并退出,将 smtp-auth-creds 文件编译到 sendmail 中

makemap hash /etc/mail/smtp-auth-creds < /etc/mail/smtp-auth-creds

Step 3: 修改 sendmail.mc 文件

修改sendmail.mc文件以通过外部 SMTP 服务器配置电子邮件中继。

sudo nano /etc/mail/sendmail.mc

配置 SMART_HOST 到中继服务器,例如:通过 Gmail SMTP 发送邮件,则设置为smtp.gmail.com

define(`SMART_HOST', `smtp.example.com')dnl

在上面一行之后,添加更多的配置,如 SMTP 凭据,SMTP 端口等。

define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl FEATURE(`authinfo', `hash -o /etc/mail/smtp-auth-creds.db')dnl define(`confAUTH_OPTIONS', `A p')dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

保存文件并关闭文本编辑器。

Step 4: 生成 sendmail.cf 文件

sendmail.mc文件用于生成sendmail.cf文件,Sendmail 使用它来确定其配置。要生成sendmail.cf文件,请使用以下命令:

sudo make -C /etc/mail

然后重新启动 sendmail 服务以应用更改

systemctl restart sendmail

Step 5: 验证 sendmail 设置

要验证配置是否按预期工作,可以使用 sendmail 发送测试电子邮件

echo "This is a test email" | sendmail recipient@example.com

如果一切配置正确,您应该在收件箱中收到测试电子邮件。

我的开源项目

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)
http://www.cnnetsun.cn/news/8590.html

相关文章:

  • UDP通信
  • 如何快速制作专业有声书:abogen开源工具的完整指南
  • Matlab 基于光流场的交通流量分析与应用
  • 如何运用Transformer架构实现高效图像生成
  • 阿里自研Wan2.2-T2V-A14B模型深度解析:文本到视频的革命性突破
  • MySQL从入门到精通系列保姆级教程,带你嗨翻天
  • 5个移动端推荐引擎性能瓶颈及突破方案
  • 复杂网络与模糊逻辑粒子群优化毕业论文【附代码】
  • 【毕业设计】基于springboot高校工作室管理系统高等教育机构的工作室管理(源码+文档+远程调试,全bao定制等)
  • uni-app插件市场深度ROI分析:如何用组件化降低70%开发成本
  • 5、汇编语言中的数学与位操作
  • 靠谱的PC耐力板公司有哪些
  • 深入解析C#方法:从基础到高级应用
  • 基于微信小程序的校园食堂点餐订餐系统(毕业设计项目源码+文档)
  • XGW-9000系列高端新能源电站边缘网关产品需求文档(PRD)
  • 多模态Agent的Docker服务编排全解析(架构师不愿透露的5大核心技巧)
  • 网络安全培训全攻略:零基础能学会吗?前景如何?
  • 仓颉stdx模块终极配置指南:从零开始快速上手
  • 使用开源模型微调,构建专属的测试用例生成机器人
  • COMSOL模拟等离子共振结构超材料:多波段高吸收率文献复现案例
  • 深度解析:5大实战技巧教你精准拆解量化策略的因子归因
  • 终极电商后台管理系统:mall-admin-web完整使用指南
  • 【量子模拟器开发新突破】:VSCode扩展实战指南,提升开发效率90%
  • 关于内联函数的理解学习
  • Whisper部署实战手册:从环境配置到性能调优的完整解决方案
  • 昇腾AI:不只是一颗芯片,更是一个时代的算力答案
  • 6、网络服务枚举与安全防护全解析
  • 8、Windows系统认证攻击与防范全解析
  • Linux网络参数:现代内核的智能优化之道
  • C# 随机数添加数组对象和数组的查询方法