PHP发送Gmail邮件加附件
前一段,我介绍了如何用PHP调用Gmail发送邮件,此方法只适用于发送文本邮件,也就是不支持附件发送。其实,要发送附件也不难,只是需要安装一个模块:Mail-Mime。下面就给大家做过详细介绍。
1.首先安装Mail-Mime, 你可以到pear网站下载后安装,如果你的机子装有Pear的包管理器,你直接运行下面的命令即可:
mail-mime pear install -o Mail_Mime#在unbuntu下,使用sudosudo mail-mime pear install -o Mail_Mime
2. 使用下面的代码,这和PHP调用Gmail发送邮件一文中介绍的代码相识,不同的是多了Mail_Mime, 它是用来构造邮件的主题部分(内容和附件):
<?phprequire_once "Mail.php";require_once "Mail/mime.php";//请用你的Gmail帐号和密码替代$host = "smtp.gmail.com";$username = "your-account";$password = "your-password";//定义收信人,发信人,以及主题和信息等$from = "Adam<your@gmail.com>";$to = "Cindy<someone@any.com>";$subject = "Hi!";$text = "Hi,\n\nHow are you?";$html = "<b>hi</b>; 你也可以发送HTML格式的邮件//定义附件路径和名称$file = "/root/test/mail.php";//如果你对下面的代码不熟悉,那么就请保留原样$crlf="\n";$headers = array ('From' => $from,'Subject' => $subject);$mime = new Mail_mime($crlf);$mime->setTXTBody($text);$mime->setHTMLBody($html); //发送HTML$mime->addAttachment($file, 'text/plain');$body = $mime->get();$hdrs = $mime->headers($headers);$smtp = Mail::factory('smtp',array ('host' => $host,'auth' => true,'username' => $username,'password' => $password));$mail = $smtp->send($to, $hdrs, $body);if (PEAR::isError($mail)) {echo("<p>" . $mail->getMessage() . "</p>");} else {echo("<p>Message successfully sent!</p>");}?>
注意:在上述代码里,我使用的附件内容类型是文本(content-type:text/plain)。如果你要发送PDF,图片,ZIP等其他文件类型,你可以使用下面的代码代替:
关于content_type (内容类型),请参考:w3schools的介绍$mime->addAttachment($file, 'text/plain'); //文本$mime->addAttachment($file, 'application/pdf'); //PDF$mime->addAttachment($file, 'image/gif'); //图片$mime->addAttachment($file, 'application/zip'); //ZIP
标签: PHP



2 条评论:
大大:你好!你是用传统blogger模板吧!
我想用这个模板。能否把源代码发给我。
ljhui17@gmail.com
作者
麦芽糖, 时间
2009年6月28日 下午10:49
麦芽糖:
很高兴知道你对本站模板的喜爱。因为目前的模板有很多地方是针对本站本身设计的,所以你可能还不能直接使用。等我有空了,我会把模板整理出来发布,到时一定通知你。
谢谢!
Adam
作者
Adam, 时间
2009年6月29日 下午12:17
发表评论
指向此帖子的链接:
创建链接