0

Я пытаюсь отправить ссылку активации аккаунта по электронной почте новым пользователям. Я использую почтовую программу по умолчанию в Yii2. Я генерирую следующий код для создания тела электронной почты с помощью файла вида «activation_request_email».Yii2 - вывод дополнительных символов в сгенерированном сообщении электронной почты

$emailMessage = Yii::$app->mailer->compose('activation_request_email', ['userModel' => $this]); 

Затем в файле представления Я использую следующий код для генерации активации Ссылки:

<?= Html::a ('Activation Link', ["site/activation", "key" => $userModel->email_activation_key])?> 

Сообщения отправлено успешно, но генерируется сообщение электронной почты, включая ссылку в сообщении всегда содержат некоторые дополнительные символы, такие как «3D» и знак равно Как показано ниже:

<a href=3D"/tbpv2/web/site/acti=vation?key=3DfW_9XM-bdxXDHCTEwPTAPL1wwKGcc3">Activation Link</a> 

Конфигурации для почтовой программы компонента являются:

'mailer' => [ 
     'class' => 'yii\swiftmailer\Mailer', 
     'useFileTransport' => true, 
    ], 

Отрывок сгенерированного HTML заголовка в сообщении как в соответствии с:

<head> <meta http-equiv=3D"Content-Type" content=3D"text/ht=ml; charset=3DUTF-8" /> <title> Reset Token</title>= </head> 

Что может быть причиной?

+0

Использование 'useFileTransport = true' означает, что вы не отправляете почту на реальные адреса электронной почты. – scaisEdge

+0

Вы уверены, что часть 'href' в вашем коде в порядке? Кажется, что '3D' перед цитатами не должно быть там, плюс в ссылке -' acti = vation' кажется странным. – Joe

+0

@Joe Да, символы «3D» и «=» появляются произвольно через генерируемое сообщение. –

ответ

0

Вы опечатка

<?= Html::a ('Activation Link', ["site/activation", "key" => $userModel->email_activation_key])?> 

попробуйте удалить пробел после

<?= Html::a('Activation Link', ["site/activation", "key" => $userModel->email_activation_key])?> 

Просто для проверки, если проблема связана с хелперов Funtion или другой попытки вторя HTML-код таким образом

<?php echo "<a href='yuor_site..../site/activation?key=" .  
     $userModel->email_activation_key . "'>Activation link</a"; ?> 

и тест результат

попробуйте этот путь

$activationLink = Yii::$app->urlManager->createAbsoluteUrl(['site/activation', 'key' => model->email_activation_key]); 


<?= Html::a(Html::encode($activationLink), $activationLink) ?> 
+0

Это не похоже на проблему.Однако никакого эффекта. См. Мой обновленный вопрос. Сообщение отправляется успешно, но сгенерированное электронное сообщение, содержащее ссылку в сообщении, всегда содержит некоторые дополнительные символы, такие как «3D» и «=». –

+0

У меня есть ответ на вопрос – scaisEdge

+0

Проблема специфична для отправки электронной почты, отправленной с использованием почтовой программы по умолчанию Yii2. –

0

=3D является заменой =, вызванное кодированием Цитируется-печати. Это абсолютно верно. См Wikipedia и это github issue

Википедия:

Цитируется-печати, или кодирование QP, является кодирование с использованием печати ASCII символов (буквенно-цифровой и знак равенства =) для передачи 8-битовых данных больше 7-битный путь данных или, как правило, по среде, которая не является 8-разрядной чистой. Он определяется как передача содержимого MIME для использования в e-mail.