phpmailer中的base64_encode

时间:2016-10-27 04:25:52

标签: php phpmailer

我正在尝试将以下超链接添加到电子邮件中。此链接将指示用户访问动态销售订单。它在网页上列出但不在电子邮件中时有效。

这在我的页面上列出时有效:

$str = '[INVOICENO] =' . $OrderNumber . '';

echo ' <a href="http://n-server/nameofsoftware/PlatformRO/WebClient/NTLM/1/Integration?p=RLV&fc=de9766b2-4d43-4b93-b55d-0afac57bf79b&q=' . base64_encode ( $str ) . '">$OrderNumber</a> ';

现在我试图在电子邮件中发送相同的链接

$str = '[INVOICENO] =' . $OrderNumber . '';

$email_message = '
<a href="http://n-server/nameofsoftware/PlatformRO/WebClient/NTLM/1/Integration?p=RLV&fc=de9766b2-4d43-4b93-b55d-0afac57bf79b&q=' . base64_encode ( $str ) . '">$OrderNumber</a>


';

在电子邮件中使用base64_encode是否存在问题?

我试图把它变成一个变量,但它仍然没有用。

有什么想法吗?

更新

问题是电子邮件中的链接已断开。

这是在网页上回显的链接示例:

http://n-server/nameofsoftware/PlatformRO/WebClient/Client/Result?fc=de9766b2-4d43-4b93-b55d-0afac57bf79b&q=%5BINVOICENO%5D%20%3D3846411&displayOneDoc=False&orgId=1

这是电子邮件中链接的示例:

http://n-server/nameofsoftware/PlatformRO/WebClient/Client/Result?fc=de9766b2-4d43-4b93-b55d-0afac57bf79b&q= 3846411&amp; displayOneDoc = False&amp; orgId = 1

2 个答案:

答案 0 :(得分:0)

尝试使用urlencode和urldecode作为base64_encode值,因为它在base64_encode中会有一些=。

答案 1 :(得分:0)

使用urlencode php

当编码要在URL的查询部分中使用的字符串时,此函数很方便,这是将变量传递到下一页的便捷方式

urlencode(trim(base64_encode($str)))

更新1:

<li> 
 <strong>View Order:</strong>

<a href='nserver2/nameofsoftware/PlatformRO/WebClient/NTLM/1/<?php echo urlencode(trim(base64_encode ("INVOICENO=". $OrderNumber))); ?>'> <?php echo $OrderNumber ?></a>

</li> 

更新2:

    <?php

    $OrderNumber='123';  //ASSUMPTION

    $str = '[INVOICENO] ='.$OrderNumber;

    $final_string = urlencode(trim(base64_encode ($str))); 

    $email_message = '
    <a href="http://n-server/nameofsoftware/PlatformRO/WebClient/NTLM/1/Integration?p=RLV&fc=de9766b2-4d43-4b93-b55d-0afac57bf79b&q='.$final_string.' "> '.$OrderNumber.'</a>';

    ?>

    <li> <strong>View Order:</strong>
    <?php echo $email_message; ?>
    </li>