作者liveoutmyway (friend forever)
看板PHP
标题[请益] 用PEAR以html格式寄信,背景图片显示问题?
时间Mon Sep 6 03:19:38 2010
不太清楚这篇能否PO在这里还是Web_Design版 ?
本来PO了一篇PEAR的 &Mail::factory() 用法问题
因为同样是用书上的范例发生的问题
想说要一起PO在同一篇请教的
但实在是怕打的太长,排版太乱会没人想看完
所以就分2篇PO了 :P
---------------------骗P币的分格线-------------------------
按照上一篇PO文说的,我用书上的范例
用PEAR寄信, 但是 1. & Mail::factory('smtp',$mailParams); 失败
改用 2. & Mail::factory('mail'); 成功
现在问题是按照书上的范例
寄一封HTML格式的信是成功的
但是收到的信件
可以上传图片
可以在寄信的时候 在信件内容打类似以下元html原始码都成功显示出来
---------------------------------------------------
<p style="color:red">test </p>
<h3>test2<h3>
<h2 style="clolr:navy">test3</h2>
---------------------------------------------------
但是以成功上传的图片
当作背景图案显示不出来??!
gmail,Yahoo信箱 可以看到上传的背景图可供下载,但背景空白
**看到书上的成果图完全都是成功的,但是按照书上执行有问题..
**我只PO部分原始码上来不知道会不会违反着作权等相关法规?
若有请写信通知,一定会尽快删除或是麻烦版主删除
该PHP程式是设计为一个HTML网页
有收件人,主旨,和信件内容3个输入栏位 还有1个寄信的按钮
以下为部分php程式码
主要是在第8行设定背景图档
第32行以addHTMLImage()上传图片
最後以19行设定显示出来
1. require_once('Mail.php'); // 引用 PEAR::Mail
2. require_once('MyMime.php'); // 引用自定的 MyMime 类别
3.
4.//检查收件人及主旨均非空字串
5. if(!empty($_POST['to']) && !empty($_POST['subject'])) {
6. $recipients = trim($_POST['to']); // 去除换行
7. $subject = trim($_POST['subject']); // 去除换行
8. $background = '背景图.jpg'; // 设定背景图档
9.
10.
11.
12. // 其中会加入使用者输入的邮件主旨、内容、及程式设定的背景图档
13. $html = <<<HTMLBODY
14. <html>
15. <head>
16. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
17. <title>{$_POST['subject']}</title>
18. <style>
19. body{background:url($background)}
20. div{color:navy;width:750px;border:2 dashed}
21. </style>
22. </head>
23. <body>
24. {$_POST['body']}
25. <hr>
26. Send by <a href="
http://pear.php.net/package/Mail">Pear::Mail</a>
27. </body>
28. </html>
29. HTMLBODY;
30. $mime = new MyMime("\n"); // 建立 MyMime 物件
31. $mime->setHTMLBody(stripslashes($html)); // 去除反斜线再加入本体
32. $mime->addHTMLImage($background, 'image/jpeg'); // 加入图片
33.
34. $mimeParams = array ('head_encoding' => 'base64', // 设定 MIME
35. 'text_encoding' => '8bit', // 编码相关参数
36. 'head_charset'=> 'UTF-8',
37. 'text_charset'=> 'UTF-8',
38. 'html_charset'=> 'UTF-8');
39. $headers = array( // 设定档头资讯
40. 'From' => '名字<我的信箱@mail.tbcnet.net>',
41. 'To' => $recipients,
42. 'Subject' => $subject);
43. $body = $mime->get($mimeParams); // 取得 MIME 邮件内容
44. $hdrs = $mime->headers($headers); // 取得 MIME 邮件表头
45.
46. // 以下开始建立 Mail 物件并寄出邮件
47. //$mailer = &Mail::factory('smtp',$mailParams); // 建立物件
48. $mailer = &Mail::factory('mail');
49. $result = $mailer->send($_POST['to'], $hdrs, $body);
------------------------------------------------------------------
----------------发个牢骚----------------------
本来当初买这本书,光翻书的内容觉得不错
想说对於PHP的能力会进步很多
但是现在程式概念是学了不少
现在卡在范例要按照书上的方式跑成功都有困难
(范例还是直接用光碟复制贴上的)
书上图都是成功的,我按照书上指示却出问题...
-----------------------------------------------
可能我将书中基本语法的章节只是大致上的阅过
也遗漏了某些重要的设定也不一定
不过目前遇到的问题
尝试过但还是无法在书中找到答案
无奈在下还算是个新手
能力不足没法解决所有书上没提到的问题
希望能帮忙解决问题
以便顺利的读完这本书
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.110.129.251