mailto发送给多人在outlook express下失败

事件:

用mailto链接,调用邮件客户端,发送邮件

发送给多人,并要显示收件人的姓名

问题:

使用<a href="mailto:a@126.com;dd@126.com">点击1</a>都是可以的

带上姓名以后:

使用<a href="mailto:fff<jessie@126.com>;<zhi@126.com>">点击1</a>雷鸟可以,outlook express只显示第一个收件人

改成:

使用<a href="mailto:?to=fff<jessie@126.com>&to=ddd<zhi@126.com>">点击2</a>可以

带上中文以后:

使用<a href="mailto:?to=你好<jessie@126.com>&to=使得<zhi@126.com>">点击2</a>乱码

处理乱码:(outlook使用gbk编码)

$str = '?to=你好<jessie@126.com>&to=使得<zhi@126.com>';

使用<a href="mailto:urlencode(iconv('utf8', 'gb2312', $str))">点击2</a>把前面的‘?to=你好’都作为姓名了

最后改成:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
$str = '?to='.urlencode(iconv('utf8', 'gb2312', '你好')).'<jessie@126.com>'.'&to='.urlencode(iconv('utf8', 'gb2312', '使得')).'<aaa@126.com>';
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
关于urlencode(),符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的,即要把特殊字符转化成url编码。

字符   特殊字符的含义   URL编码  
#   用来标志特定的文档位置   %23  
%   对特殊字符进行编码   %25  
&   分隔不同的变量值对   %26  
+   在变量值中表示空格   %2B  
\   表示目录路径   %2F  
=   用来连接键和值   %3D  
?   表示查询字符串的开始   %3F 

解决:

<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<?php
if(strpos($_SERVER['HTTP_USER_AGENT'],'Linux')){/*utf8*/
	$str = '?to=你好<jessie@126.com>'.'&to=似的<aaa@126.com>';
}else{/*gbk*/
	$str = '?to='.urlencode(iconv('utf8', 'gb2312', '你好')).'<jessie@126.com>'.'&to='.urlencode(iconv('utf8', 'gb2312', '使得')).'<aaa@126.com>';
}
?>
<a href="mailto:<?php echo $str;?>">点击</a>

后续:

变态,搞了半天自己调试的居然是outlook express,这种方法在outlook下又不适用......大哭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值