PHP在Ubuntu环境下利用Sendmail发送邮件信息

一、安装

1、Ubuntu下面需要安装以下两个函数包

命令:

sudo apt-get install sendmail

sudo apt-get install sendmail-cf

可选包:

  • squirrelmail : 提供webmail
  • spamassassin : 提供邮件过滤
  • mailman : 提供邮件列表支持
  • dovecot : 提供IMAP和POP接收邮件服务器守护进程

2、终端查看命令

命令:

ps aux |grep sendmail

输入结果:

root  21335  0.0  0.0 130040  3136 ? Ss Dec24  0:02 sendmail: MTA: accepting connections

root  27684  0.0  0.0 13608  940 pts/1  S+  18:47  0:00 grep --color=auto sendmail

如果得到以上结果,证明sendmail 已经安装成功

二、配置

1、sendmail 默认只会为本机用户发送邮件,只有把它扩展到整个Internet,才会成为真正的邮件服务器

Vi编辑器打开sendmail的配置宏文件:/etc/mail/sendmail.mc

vi /etc/mail/sendmail.mc

找到如下行

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')

将Addr=127.0.0.1修改为 Addr=0.0.0.0 让其可以连接任何服务器
退出保存,生成新的配置文件

2、备份配置文件

cd /etc/mail

mv sendmail.cf sendmail.cf~  (备份一个相同的配置文件,类似copy)

3、测试

输入以下命令:

m4 sendmail.mc > sendmail.cf

注意:>的左右有空格,提示错误没有安装sendmail-cf

三、测试发邮件

1、选择安装发送附件

命令:

sudo apt-get install mailutils

sudo apt-get install sharutils

2、发送格式

mail test@126.com  Cc 编辑抄送对象,Subject:邮件主题,输入回车,邮件正文后,按Ctrl-D结束

3、快速发送

echo “邮件正文” | mail -s 邮件主题 test@126.com

4、带附件

uuencode 附件名称 附件显示名称 | mail -s 邮件主题 发送地址

示例:

uuencode test.txt test.txt | mail -s Test test@126.com

四、DEMO示例

通过shell把硬盘的空间信息发送到指定邮箱

(1)新建一个shell脚本

命令:vim SendMail.sh

(2)输入内容

df -hl > data.txt

(3)退出保存

(4)sendmail发送邮件

mail -s sendMail 751247j439@qq.com < data.txt
标签: