方法之一:
在Linux下通过PHP的ubuntu sendmail函数可以很方便的发送邮件,可是在安装ubuntu
sendmail后却总接收不到邮件,搞了一晚上也还是糊涂着,虽然最后能成功接收了,不过还是晕。
ubuntu sendmail先要安装两个包
sudo apt-get install sendmail
sudo apt-get install sendmail-cf这两个是必需的
还有几个可选的
squirrelmail 提供webmail
spamassassin 提供邮件过滤
mailman 提供邮件列表支持
dovecot 提供IMAP和POP接收邮件服务器守护进程
ubuntu sendmail安装好后就可以配置文件,发送邮件了
ubuntu sendmail配置还没看透,先看如何发吧!
指令mail yourqq@qq.com yourqq是qq号码,这里我们用qq邮箱测试一下
输入后会提示
Subject:这是邮件的主题,输入后然后enter会跳转到下一行,这时我们就可以输入邮件的内容了,当你像结束输入的时候换行
Ctrl+D结束输入,会出现Cc:提示,这是抄送提示,你可以在这里输入替邮箱地址,将该邮件转发。然后Enter,邮件就发出去了,我们可以登录QQ邮箱看看,一般这样的邮件都会被识别为垃圾邮件,所以你可以到垃圾箱看看
当然了我们可以写php程序来发送文件
我们先配置一下/etc/php5/apache2/php.ini
这个文件,貌似我的不用配也能发出去,待会深入研究
找到 ;sendmail_path这句,去掉注释的;然后添加sendmail启动目录
sendmail_path = /usr/sbin/sendmail -t -i
$now = date("Y-m-d h:i:s");
$from_name = "yourname";
$from_email = "yourqq@qq.com";
$headers = "From: $from_name
";
$body =
"嗨,这是一封测试信件来自".$from_name."";
$subject = "[".$now."] 测试信件发送";
if (mail($from_email, $subject, $body, $headers)) {
echo "success!";
} else {
echo "fail";
}
?>
方法之二:
一、安装
ubuntu中sendmail函数可以很方便的发送邮件,ubuntu
sendmail先要安装两个包。
必需安装的两个包:
代码
sudo apt-get install sendmail
sudo apt-get install sendmail-cf
下面几个包是可选的:
代码
squirrelmail //提供webmail
spamassassin //提供邮件过滤
mailman //提供邮件列表支持
dovecot // 提供IMAP和POP接收邮件服务器守护进程
注意:
Ubuntu下使用最常用的mail功能,需要安装mailutils,
安装命令:sudo apt-get install mailutils
使用带附件的功能,则还需要安装sharutils,
安装命令:sudo apt-get install sharutils;(yum install sharutils )
终端输入命令:ps aux |grep sendmail
输出如下:
root 20978 0.0 0.3 8300 1940
? Ss 06:34 0:00 sendmail: MTA:
accepting
connections root 21711 0.0 0.1 3008 776
pts/0 S+ 06:51 0:00 grep
sendmail
说明sendmail
已经安装成功并启动了
二、配置
sendmail
默认只会为本机用户发送邮件,只有把它扩展到整个Internet,才会成为真正的邮件服务器。
打开sendmail的配置宏文件:/etc/mail/sendmail.mc
vi /etc/mail/sendmail.mc
找到如下行:
代码
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
修改Addr=0.0.0.0 ,表明可以连接到任何服务器。
生成新的配置文件:
代码
#cd /etc/mail
#mv sendmail.cf sendmail.cf~ //做一个备份
#m4 sendmail.mc > sendmail.cf //>的左右有空格,提示错误没有安装sendmail-cf
三、测试发送邮件
常用发送邮件方式如下:
1.如何写一般的邮件:mail
test@126.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 邮件主题 发送地址
例如:uuencode test.txt test.txt |
mail -s Test test@126.com