打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Sendmail基础配置和smtp命令学习

本文接上文:搭建一台健壮的E-mail服务器—基础知识和概念

学习Linux平台的电子邮件首先要学的肯定是sendmail,但是随着时间推移,Sendmail变得越来越庞大。并且很多现代化的功能,Sendmail也无法继续支持。取而代之的是新秀Postfix,它具有体积小,功能强大,并且是公认的最安全的MTA。Redhat公司也将Postfix作为默认的MTA集成在RHEL中。但是,在大多数联网的Unix/Linux主机中,Sendmail使用默认配置即可完成向外界发送邮件的功能。大大方便了系统管理员。下面将通过系统默认配置的Sendmail讲述SMTP command命令。

在这一节中,将引进一个新词“只发不收”。说白了就是有这么一种服务器。发件人通过它发出去的邮件,收件人无法通过“回复”功能回复邮件。即便回复了,发件人也收不到。

这时或许就有人疑惑了,那这种电子邮件系统有什么用啊?我告诉你,这种邮件系统太有用了。做过Linux系统管理员的人都有这么一个体会,每天登录各种服务器,查看性能参数。服务器数量少了还好处理一些。随着服务器数量的增多,往往会忘记登录哪台服务器。为了解决这种问题,往往在服务器上编写各种脚本,收集服务器性能参数,通过电子邮件的形式发送给自己。这种情况下,服务器只发送邮件,不接收邮件!

配置“只发不收”型的邮件服务器非常简单,如下所示。

Sendmail安装启动

安装base软件组,启动Sendmail服务。这里作者并不设置Sendmail的开机启动,因为接下来就会将MTA切换到Postfix。没必要费功夫设置这个!

yum groupinstall base  -yservice sendmail start

查看Sendmail服务器是否运行

[root@localhost ~]# service sendmail statussendmail (pid  1691) is running...sm-client (pid  1700) is running...

邮件服务器必须配置一个全后缀主机名,因为邮件服务器是通过DNS的MX记录解析的。下面配置可在不重启服务器的情况下,设置主机名

vi编辑文件/etc/sysconfig/network 添加如下几行hostname=mail2.xiyang-liu.comhostname -v mail2.xiyang-liu.comexit

重新登陆系统后,执行如下语句查看主机名是否已经配置完毕

[root@mail2 ~]# hostnamemail2.xiyang-liu.com

这时,已经可以通过senmail的默认配置向外界发送邮件了,因为本文档不着重讲解Sendmail,所以这部分配置就略去了。

使用Sendmail发送邮件

使用Sendmail向外界发送邮件有三种方法:

  1. 直接调用Sendmail发送邮件,常用于LAMP环境下的PHP调用。
  2. 通过SMTP命令行直接发送邮件。
  3. 通过Linux下的命令mailx(MUA的一种)命令发送邮件。

下面逐一讲解这三种方法。

php调用Sendmail自动发邮件

通过LAMP调用Sendmail在/etc/php.ini中配置节选如下

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-pathsendmail_path = /usr/sbin/sendmail -t -i; to the sendmail binary. These parameters will always replace the value of

启动apache之后,即可通过Sendmail命令直接发送邮件到特定的账户。Nagios和cacti配置中会用到这个功能。

使用mailx发送邮件

Shell中,通过mailx命令发邮件,如下所示

mailx -s “subject:test mail” xiyangliu1987@gmail.comtype something herectrl+D

上述方式只能手动在命令行中手动输入邮件内容。有什么方法能不输入任何内容即可发送邮件? 想一想,哈哈!

使用SMTP Command发送邮件

通过SMTP命令行发送邮件。基本命令的解释如下图所示:

实际命令操作如下,被双尖括号包围的是用户输入部分:

[root@mail2 ~]#telnet 127.0.0.1 25Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.220 mail2.xiyang-liu.com ESMTP Sendmail 8.14.4/8.14.4; Wed, 12 Jun 2013 10:57:44 +0800>>ehlo client<<#常用来查看服务器支持那些特征,后必须跟一个标识身份的字符串250-mail2.xiyang-liu.com Hello localhost [127.0.0.1], pleased to meet you250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-DELIVERBY250 help>>MAIL FROM: root@mail2.xiyang-liu.com <<#从哪里发出,这个地址可以随意填写250 2.1.0 root@mail2.xiyang-liu.com... Sender ok>>RCPT TO: manager@ xiyang-liu.com <<#发给谁250 2.1.5 manager@ xiyang-liu.com... Recipient ok>>DATA<<  #开始输入正文354 Enter mail, end with "." on a line by itself#开始输入正文,以单独英文句号结束的行标识正文结束subject: hello me#摘要telnet smtp to send a email..  #输入结束<<250 2.0.0 r5C2vi3V010093 Message accepted for delivery>>quit<< #退出221 2.0.0 lamp.honliv.com closing connectionConnection closed by foreign host.

Sendmail的SMTP命令行支持HELP命令提供简单的命令,如下所示:

[root@mail2 ~]#telnet 127.0.0.1 25Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.220 mail2.xiyang-liu.com ESMTP Sendmail 8.14.4/8.14.4; Wed, 12 Jun 2013 11:18:57 +0800>>ehlo client<<250-mail2.xiyang-liu.com Hello localhost [127.0.0.1], pleased to meet you250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-DELIVERBY250 HELP>>help<<214-2.0.0 This is sendmail214-2.0.0 Topics:214-2.0.0       HELO    EHLO    MAIL    RCPT    DATA214-2.0.0       RSET    NOOP    QUIT    HELP    VRFY214-2.0.0       EXPN    VERB    ETRN    DSN     AUTH214-2.0.0       STARTTLS214-2.0.0 For more info use "HELP <topic>".214-2.0.0 To report bugs in the implementation see214-2.0.0       http://www.sendmail.org/email-addresses.html214-2.0.0 For local information send email to Postmaster at your site.214 2.0.0 End of HELP info>>help starttls<<214-2.0.0 STARTTLS214-2.0.0       Start TLS negotiation.214 2.0.0 End of HELP info>>help auth<<214-2.0.0 AUTH mechanism [initial-response]214-2.0.0       Start authentication.214 2.0.0 End of HELP info>>quit<<Connection closed by foreign host.

查看邮件是否已经被接受,如下是thunderbird的截图:

本文通过Sendmail搭建的邮件服务器,着重讲解了SMTP Command的应用。为以后Postfix的讲解做好铺垫。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SMTP结构及原理
LINUX下通过外部SMTP发邮件
性能测试的协议分析
发送邮件
nagios发不出邮件
Linux中Postfix邮件原理介绍(一) – 运维那点事
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服