22.
@icEz 他发的是html(直接显示) 我的不是 表示我并没有发现哪里有问题 改了n次了 至今没有解决①为什么不显示内容②为什么附件为0字节
24.
@老虎会游泳 还是和原来一样 没有内容 文件字节为0 主题发件人:"wyk" <
wyk@wyk.asia>收件人:13422523019时间:2013/06/13 11:49:08共有1个附件(卡巴斯基杀毒引擎已扫描) z.php(0字节)下载
25.
@梦幻天使,跟你说个更奇怪的问题,我使用socket发送邮件,结果用fsockopen根本打不开任何邮件发送服务器的端口。。。其他端口都打的开。太奇怪了。同样,php也打不开https端口。
26. 我找不到原因,但是我一直在自己找原因。我知道虎绿林没有人可以给我答案。也许我应该去更专业的平台询问。我准备把问题发到
德问,
@梦幻天使,你也可以试试去那里问。
27.
@梦幻天使 我找到答案了,其实php的mail函数无法对内容中的用户定义的头信息解析,如果你要发附件就在mail()第四个参数中定义 Content-type: application/unknown; 就行了,其符件内容为发件内容~~~
28. $mail=mail('
798340805@qq.com','一个附件~','这里读取文件内容',"Content-type: application/unknown;");
就这样,mail第三个参数无法对邮件的头信息解析,你写再多的标识符,编码,都没用,他只当作文本内容发送给你,不过,邮件的内容应该能再第四个参数参数中定义,第三个参数就必须用来储存附件的内容,~~~
29. 测试失败,估计mail函数第四个参数只能定义form信息,Content-type: application/unknown;
或其他,即使多了一个
boundary="396d983d6b89a"它也会帮你把
boundary="396d983d6b89a"弄到内容(这里是附件里的内容)里去,但PHP又无法解析第三个参数里面的 --396d983d6b89a
Content-type: text/plain;
charset=iso-8859-1 Content-transfer-encoding: 8bit
这些玩意!这就注定mail()函数只能发附件(发附件时无法包含邮件内容),要么只能发文本或htm么?
31.
@学无所成,你的结论是错的,因为phpmailer类库在使用mail函数发送邮件时可以自由增加附件并且不会丢失邮件正文。
32. 你试过phpmailer类吗?
@梦幻天使
<?php
include_once './class.phpmailer.php';
$mail=new PHPMailer();
$mail->IsMail();
$mail->From='hu60.cn@gmail.com';
$mail->FromName='hu60.cn';
$mail->CharSet="utf-8";
$mail->Encoding="base64";
$mail->AddAddress('hu60.cn@163.com','老虎会游泳');
$mail->AddAttachment('./img/1.jpg', '1.jpg');
$mail->IsHTML=false;
$mail->Subject="[文件中转]";
$mail->Body="成功中转一个附件!
文件名:1.jpg
文件大小:……
文件地址:……
======
请先用CMWAP登陆邮箱,再去CMMM下载。";
if($mail->Send())
{
echo '发送成功!';
}
else
echo '发送失败!';
33. mail ('
798340805@qq.com','一个附件 ~',file_get_contents('a.txt'),"Content- type: application/unknown;");
@梦幻天使 不过无法识别文件名
@老虎会游泳 可是像梦幻天使这代码,会把$txt里面的内容直接发送给收件人,里面的像 Content-Type: multipart/mixed; boundary='adm' --adm Content-type: text/plain; charset=base64 Content-transfer-encoding: 8bit 你好么???? --adm这些根本就是直接在邮件中显示出来,而不会被邮件解释出想要的东西,估计那里弄错了吧?
34.
@学无所成,当设置了正确的header时,邮件内容会被当作mime(多媒体邮件)格式解析。
35.
@学无所成 不设置标识符不会被解析的 会当文本发来 设置标识符发来附件为0字节发件人:"u370929193"<
u370929193@srv1.main-hosting.com> 收件人:13422523019 时间:2013/06/13 14:46:23 Content-type: application/octet-stream; name=z.php Content-disposition:attachment; filename=z.php Content-transfer-encoding: base64 PD9waHANCmhlYWRlcigiY29udGVudC10eXBlOnRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIpOw0K Pz4NCjxodG1sPjx0aXRsZT5VQ+S4i+i9veWcsOWdgOi9rOaNojwvdGl0bGU+DQo8Zm9ybSBtZXRo b2Q9InBvc3QiIGFjdGlvbj0iIj48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXJsIiB2YWx1ZT0i aHR0cDovLyI+PGJyPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im9rIiB2YWx1ZT0i6L2s5o2i Ij48L2JvZHk+PC9mb3JtPg0KPC9odG1sPg0KPD9waHANCmlmKCRfUE9TVFsnb2snXSkNCnsNCiR1 cmw9JF9QT1NUWyd1cmwnXTsNCiR1PWV4cGxvZGUoJyYnLCR1cmwpOw0KJGk9IiR1WzBdJiR1WzFd JnJlcXVlc3RfZnJvbT1VQ01JRERMRSYkdVsyXSYkdVszXSYzNjBzZC5leGUud21sLXFpdXFpdS5j b20iOw0KZWNobyI8YSBocmVmPSRpPuS4i+i9veWcsOWdgO+8mj4+PjwvPiI7DQp9DQoNCj8+
36.
@老虎会游泳 貌似那个我不会用 文件也比较大 我想用最简单的方法实现(重要的是我学会用mail函数)
37.
@梦幻天使,所以你不应该抱怨0回复。说实话,我完全没有兴趣研究mime协议(就像你现在做的一样),因为我使用phpmailer。想回复的人已经告诉过你phpmailer了,你没有选择它,我们已经没有什么可以说的了。
所以,当你想知道某件事物的原理时,你应该尝试自主研究。
我们对你的研究不感兴趣,这不是我们的错,就像你可能对历史学家的研究完全不感兴趣一样。
其实,你选择的方法是最难的,因为你没有使用封装好的函数,你是在直接构造mime邮件数据,你是在直接使用mime协议发信。
看上去论坛没有人熟悉mime,这也是你的问题0回复的另一个原因。
不知道+不感兴趣造就了0回复,而对此感兴趣的你,自己加油吧。
貌似另一个人也对此感兴趣了呢。
38.
@老虎会游泳 你能不能帮我检查下啊 我是新手 没有经验 代码都是复制后改的 我并没有发现问题 可就是字节为0 如果没有分界线 将会当文本发送(楼下有)说明文件没有问题 我怀疑是不是分界线内里的语法有问题 找了好多教程 多数都一样(要么就是邮件类)
39.
@梦幻天使,
下载phpmailer.php,你现在复制32楼的内容吧。把这个文件放在你的php的同一目录里即可使用。
40. 如果32楼依然0字节,那么可能你使用的mail函数服务器配置有问题。