0

次のコードがあります。

$link = "www.domain.com/profile/forgot_password?user=".$username . "&key=".$key;
$this->email->message('You requested to reset your password. Follow the link. <a href="'.$link.'"> ' . $link . "</a>.    Thank you,System Support.");   

ここで私が試みているのは、ユーザーがパスワードをリセットしたいときにわかりやすいメッセージを作成することだけです。次のようになります。

パスワードのリセットをリクエストしました。ここをクリックしてください。

ここをクリックすると、リセット ページに移動するためのリンクが href に含まれている必要があります。上記のコードがhtmlをエスケープしているように見えるため、これは機能していないため、送信されたメッセージに以下が表示されています。HTML タグを送信するのではなく解釈する必要があります。

<a href='hdkjahskjdaskhdsjkahd'> djadjalksjdklasjdkajsd</a>
4

2 に答える 2

1

電子メールを HTML 形式で送信するための適切な電子メール設定、特に次の設定を行っていることを確認しますmailtype

//You can add more email preferences here too
$config['mailtype'] = html;
$this->email->initialize($config);

$link = "www.domain.com/profile/forgot_password?user=".$username . "&key=".$key;
$this->email->message('You requested to reset your password. Follow the link. <a href="'.$link.'"> ' . $link . "</a>.    Thank you,System Support.");

必要に応じて、メール設定を構成ファイルに保存できます。

という名前の新しいファイルを作成し、そのファイルに配列をemail.php追加するだけです。$config次に、ファイルを保存するconfig/email.phpと、自動的に使用されます。


CodeIgniter のユーザー ガイドでは、次のことも指定されています。

HTML メールを送信する場合は、完全な Web ページとして送信する必要があります。

つまり、Web ページの作成に使用するすべての関連タグ ( など) を含めることを意味し<html>ます<body>。これを管理しやすくするために、電子メール テンプレートをビューファイルに保存できます。次に例を示します。

application/views/email_templates/password_reset.php

このファイルには、電子メールとして送信する関連 HTML を含めることができます。次に例を示します。

//Other appropriate HTML tags...    
<p>You requested to reset your password. Follow the link. <a href="<?php echo $link; ?>"><?php echo $link; ?></a>. Thank you, System Support.</p>
//Other appropriate HTML tags...

次に、リンクをビューに渡し、ビューを電子メールとして送信できます。

$data['link'] = "www.domain.com/profile/forgot_password?user=".$username . "&key=".$key;
$email_message = $this->load->view('email_templates/password_reset', $data, true);
$this->email->message($email_message);

(必要な電子メール機能 ( など) をすべて含めたわけではありませんが、to()簡単send()に解決できるはずです。)

于 2013-05-09T13:27:55.970 に答える