0

我只是通过复制样本来使用 YII-Mail,但我总是在我生成的链接中得到一些 ascii 字符它们来自哪里以及如何避免它们?

$message = new YiiMailMessage;
$message->view = 'mail';
$message->setBody(array('model'=>$model), 'text/html');
$message->subject = Yii::t('tr','my subject');
$message->addTo('me@me.com');
$message->from = 'you@you.com';
Yii::app()->mail->send($message); 

并在查看文件“邮件”

<h1><?php echo(Yii::t('tr','This is HTML mail')); ?></h1>
<?php echo CHtml::link('Mylink', array('controller/view', 'id'=>$model->id)); ?>

结果电子邮件源如下所示

MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<h1>Incoming goods</h1>
<a href=3D"/testdrive/index.php?r=3Dcontroller/v=iew&amp;id=3D234137">Mylink</a>

您可以在 = 符号之后注意到 3D。如果我有符号 = 或代码 3D 类型的转换,那会更合乎逻辑,但在这里我有他们两个,这很令人费解......

4

1 回答 1

0

事实上,额外的字符是可引用的可打印编码,我在想它们是电子邮件中的链接无法工作的原因所在。但实际上链接不起作用,因为它是相对链接而不是绝对链接!所以使用正确的

Yii::app()->createAbsoluteUrl

在链接中将完美地完成这项工作。

于 2012-11-12T03:33:42.180 回答