php linux 发送带附件邮件

来源:互联网 发布:淘宝小也旗舰店靠谱吗 编辑:程序博客网 时间:2024/06/03 22:41
ubuntu系统下
①首先系统安装postfix,安装完后不需要太多配置,仅稍微改了一下/etc/postfix/main.cf   myhostname = 这一项稍微改了,加了lzu.edu.cn的后缀,不然有些邮箱会因为后缀退信,比如163。
②php下面的mail函数其实 不是太好用。在GitHub上有一个php的email库,叫
PHPMailer。这是地址http://code.google.com/a/apache-extras.org/p/phpmailer/。zip或者tar下载下来后解压开,我只用到了其中的class.phpmailer.php文件。把它放在一个php能引用的地方。
③php文件可以这样写:
 
 require_once("require/class.phpmailer.php");   //引入PHPMailer$email= new PHPmailer();
$email->From ='me-lzu@meftp.lzu.edu.cn';      
$email->FromName ='WoodFormation-Related Genes Database';    //寄件人,也就是你自己
$email->Subject = $subject;   //邮件主题,你可以先把$subject赋值,也可以直接在这放字符串
$email->Body =$mailbody;  //邮件内容
$email->AddAddress($emailaddress); //收信人,你可以通过POST或GET方法从另一张表单传过来
$filedir='tree/'.$filename.'.phb';
$email->AddAttachment($filedir,'tree.phb');  //添加附件,$filedir的值已经在上一行赋过了,后面的字符串是你想要附件出现的文件名,随意,可以添加多个附件
if(!$email->send())
{
echo 'Mail Error:'.$email-ErrorInfo;
exit;
}
echo 'A Mail has been send to you.Please check your mailbox!';

如果再加入
ignore_user_abort(TRUE);
set_time_limit(0);
这两行代码,那么客户在关闭浏览器后,服务器依然能够完成你需要的任务,然后把结果做成附件发出去,蛮好用的功能。

?>
以上基本就是全部了,测试过163,gmail以及兰大的邮箱都没有问题,但是QQ邮箱问收到邮件,原因不明...
还有假如你要修改默认发件人的信息的话,打开你的php.ini,把 sendmail_path =前面分号去掉
改成  
 sendmail_path = /usr/sbin/sendmail -f 你的发件人@你的地址 -t -i
 
0 0
原创粉丝点击