0

このメールのメッセージをutf8コーディングで送信したい..

このために何ができますか

include 'functions.php';
    $name = stripslashes($_POST['name']);
    $email = trim($_POST['email']);
    $subject = stripslashes($_POST['subject']);
    $message = stripslashes($_POST['message']);
    $cap=strtoupper($_POST['cap']);

    $error = '';


$mail = mail(WEBMASTER_EMAIL,$subject,$message,
        "From: ".$name." <".$email.">\r\n"
        ."Reply-To: ".$email."\r\n"
        ."X-Mailer: PHP/" . phpversion());

これをutf8で何を送信できますか?

4

3 に答える 3

2

次のように、電子メール ヘッダーでエンコーディングを指定できます。

$mail = mail(WEBMASTER_EMAIL,$subject,$message,
        "From: ".$name." <".$email.">\r\n"
        ."Reply-To: ".$email."\r\n"
        ."Content-type: text/html; charset=UTF-8\r\n"
        ."X-Mailer: PHP/" . phpversion());
于 2012-12-05T21:23:27.290 に答える
1

phpのutf8_encode関数を使用できます。そのようです:

$message = utf8_encode(stripslashes($_POST['message']));

これにより、$message変数またはその他の問題にエンコードされた文字列utf8が格納されます。

編集

swiftmailerライブラリを使用する場合、デフォルトでutf8エンコーディングになります。

于 2012-12-05T21:01:33.993 に答える
0

ヘッダーに utf-8 エンコーディングを設定し、サブジェクトもエンコードする必要があります。これは、簡単に破損するためです。私は個人的に、送信者のアドレスを設定する機能も追加する独自の関数を作成します。

function mail_utf8 ($to, $subject='', $message='', $from='', $header='') {
  if (preg_match("/\<html.*\>/i", $message))
    $content_type = "html";
  else
    $content_type = "plain";

  $header .= "\nMIME-Version: 1.0";
  $header .= "\nContent-type: text/$content_type; charset=UTF-8";
  if ($from)
    $header .= "\nFrom: ".$from;
  mail($to, "=?UTF-8?B?".base64_encode($subject)."?=", $message, trim($header));
}
于 2013-05-31T16:28:31.903 に答える