linux中的sendmail发送邮件

这篇具有很好参考价值的文章主要介绍了linux中的sendmail发送邮件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux/UNIX 下的老牌邮件服务器。
Sendmail 作为一种免费的邮件服务器软件,已被广泛的应用于各种服务器中,它在稳定性、可移植性、及确保没有 bug 等方面具有一定的特色,且可以在网络中搜索到大量的使用资料。

一、邮件发送原理图

linux中的sendmail发送邮件,linux,sendmail
MUA:Mail User Agent,邮件用户代理,用来编写,收发邮件
MTA:Mail Transfer Agent,邮件传输代理,将邮件传输到正确目的地
MDA:Mail Delivery Agent,邮件分发代理,将邮件分发到正确目的用户
       
举例说明,假如A用户使用的是QQ邮箱,B用户使用的是163邮箱,A要向B发送一封邮件。流程如下:
    1、A用户通过MUA编写好邮件,并发送
    2、该邮件通过MTA,首先发送到QQ邮件服务器
    3、QQ邮件服务器分析到目的邮箱地址是163,所以再通过MTA传送到163邮件服务器
    4、163邮件服务器收到该邮件
    5、由于使用163邮箱的用户有很多,再通过MDA把该邮件发送到正确的用户
    6、B用户通过MUA就可以查看A用户发送的邮件。

二、安装

mail是MUA,sendmail是MTA
1. sendmail必须先要安装两个包
    sudo apt-get install sendmail
    sudo apt-get install sendmail-cf   # 配置工具
  
2. ubuntu下最常使用的是mail功能,需要安装mailutils
    sudo apt-get install mailutils
    
3. 若需要使用带“附件”的功能,还需要安装sharutils
    sudo apt-get install sharutils
   
4. 测试
    输入命令:ps aux | grep sendmail
linux中的sendmail发送邮件,linux,sendmail
相关文件:
linux中的sendmail发送邮件,linux,sendmail

三、配置

默认情况下,sendmail只会为本机用户发送邮件,若要将它扩展到整个Internet,则修改sendmail配置宏文件,路径为/etc/mail/sendmail.mc
 
sudo vi /etc/mail/sendmail.mc
   
将Addr=127.0.0.1改为0.0.0.0,表明可以连接到任何服务器上
linux中的sendmail发送邮件,linux,sendmail
   
保存修改的文件,下面备份配置文件:
cd /etc/mail
mv sendmail.cf  sendmail.cf~
  
然后生成新的配置文件:
m4 sendmail.mc > sendmail.cf
  
重启sendmail生效:systemctl restart sendmail  或者 /etc/init.d/sendmail restart

四、测试发送邮件

常用的发送邮件方式有以下几种:
    1. 如何写一般的邮件: mail test@qq.com  Cc 编辑抄送对象,Subject:邮件主题,输入回车,邮件正文后,按Ctrl-D结束
    2. 快速发送方式: echo "邮件正文" | mail -s "邮件主题" test@126.com
    3. 以文件内容作为邮件正文来发送: mail -s test test@126.com < test.txt
    4. 发送带附件的邮件: uuencode 附件 附件名| mail -s "邮件标题" 收信人 -b 密送人 -- -f 发信人 -F 发信人名称
查看日志:tail -f /var/log/mail.log

五、邮件发送问题

1、发送失败,日志报错 My unqualified host name (node1) unknown; sleeping for retry
linux中的sendmail发送邮件,linux,sendmail
/var/log/mail.log日志有如下报错:
linux中的sendmail发送邮件,linux,sendmail
参考 Sendmail: "unqualified hostname unknown; sleeping for retry unqualified hostname - Linux Tutorials - Learn Linux Configuration,
这个错误输出实际上使问题非常清楚。文本的意思正是它所说的。这意味着 Sendmail  无法解析您的完全限定域名 unqualified host name。
在我们的例子中,系统的主机名是node1(hostname命令查看)
要解决此问题,请更改: /etc/hosts
linux中的sendmail发送邮件,linux,sendmail
重启服务:systemctl restart sendmail
再次发送邮件:echo '邮件内容' | mail -s '邮件标题' 1162886013@qq.com
linux中的sendmail发送邮件,linux,sendmail
tail -f /var/log/mail.log的日志显示:
linux中的sendmail发送邮件,linux,sendmail
查看邮箱是否收到:收到了
linux中的sendmail发送邮件,linux,sendmail

文章来源地址https://www.toymoban.com/news/detail-577099.html

到了这里,关于linux中的sendmail发送邮件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux通过QQ邮箱账号使用mailx发送邮件

      打开QQ邮箱的“设置”——“账号”,如下:   点击此处的“管理服务”,即可申请邮箱的授权码。   编辑mail的配置文件:   在 mail.rc 最下方添加如下代码:   创建证书路径   创建qq.crt   设置qq.crt   进入/root/.certs/目录   继续设置

    2024年02月08日
    浏览(13)
  • # Linux下用mailx发送邮件,邮件内容在用户端变成了以为.bin为扩展名的邮件附件的问题解决

    这种情况一般存在于将【某文件内容】作为【邮件内容】时发生,你指定的那个文件中包含了Linux终端控制字符,把这些控制字符删除即可恢复正常。 附件的文件名一般为.bin结尾,也可能是其他。 如果按这个原文发送邮件,则会变成以.bin结尾的邮件附件 删除文件中的控制字

    2024年02月16日
    浏览(16)
  • Linux下配置部署sendmail服务器

    Linux系统中的电子邮件系统包括3个组件:MUA(Mail user Agent,邮件用户代理)、MTA(Mail Transfer Agent,邮件传送代理)、MDA (Mail Dilivery Agent,邮件投送代理) MUA是电子邮件系统的客户端程序,它是用户与电子邮件系统的接口 ,主要负责邮件的发送和接受以及邮件的撰写,阅读

    2024年02月04日
    浏览(16)
  • Linux之实现Apache服务器监控、数据库定时备份及通过使用Shell脚本发送邮件

    目录  一、Apache服务器监控 为什么要用到服务监控? 实现Apache服务器监控 二、数据库备份 为什么要用到数据库备份? 实现数据库备份 三、Shell脚本发送邮件 为什么要用使用Shell脚本发送邮件? 实现Shell脚本发送邮件 在Linux中监控Apache服务器是非常重要的,原因如下: 保证

    2024年04月15日
    浏览(22)
  • springboot 发送邮件,以及邮件工具类 并且解决spring-boot-starter-mail 发送邮件附件乱码或者文件错乱

    1、设置系统值 System.setProperty(“mail.mime.splitlongparameters”, “false”); 2、 在创建对象的时候定义编码格式(utf-8): MimeMessageHelper helper = new MimeMessageHelper(mes, true, “utf-8”); 3、 其次,在添加附件的时候,附件名是需要定义编码的 helper.addAttachment(MimeUtility.encodeWord(附件名,“utf-8”

    2024年02月15日
    浏览(20)
  • 搭建个人hMailServer 邮件服务实现远程发送邮件

    hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工具即可实现远程发送邮件,不需要使用公网服务器,不需要域名,而且邮件账号名称可以自定义. 下面以windows 10系统为环境,介绍使用方法: 进入官方下载:https://www.hmailserver.com/download,选择最新版本

    2024年02月13日
    浏览(15)
  • 一篇文章带你了解Java发送邮件:使用JavaMail API发送电子邮件的注意事项、发送附件等

    作者:Stevedash 发表于:2023年8月13日 15点48分 来源:Java 发送邮件 | 菜鸟教程 (runoob.com) 电子邮件在现代通信中扮演着至关重要的角色,而在Java编程中,我们可以利用JavaMail API来方便地实现发送电子邮件的功能。本篇博客将向您介绍如何使用JavaMail API来发送电子邮件,以及一些

    2024年02月13日
    浏览(28)
  • Spring Boot发送邮件

    在现代的互联网应用中,发送电子邮件是一项常见的功能需求。Spring Boot提供了简单且强大的邮件发送功能,使得在应用中集成邮件发送变得非常容易。本文将介绍如何在Spring Boot中发送电子邮件,并提供一个完整的示例。 在开始之前,我们需要确保已经配置好了以下两项准

    2024年02月08日
    浏览(19)
  • JAVA之发送邮件

    一、导入依赖 二、发送普通文本 三、发送附件 一、导入依赖 二、发送普通文本 三、发送附件 方法一:通过POI读取数据库的数据,并生成excel,但不保存在本地文件,通过流的方式,作为附件并发送邮件 主要的代码如下: 全部代码如下: 方法二:将导出的数据生成文件,

    2024年02月13日
    浏览(15)
  • 异步实现邮件发送

    目录 问题描述: 问题分析: 问题解决: 分析总结: 问题描述:         在写接口的时候,遇到一个问题,前端要求直接返回结果再去运行其他代码。 问题分析:         因为经费紧张,本次使用的是网易发送邮件,也就是用你的账号给其他人发送邮件这种,这也存

    2024年02月14日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包