0

PHP の mail() 関数を使用して送信する電子メールの文字設定に問題があります。

PHPコードを書いた実際のファイルはUTF-8文字セットです。また、電子メールのヘッダーに charset=UTF-8 が設定されていることも確認しました。基本的な HTML コンテンツのヘッダーにメタ タグも追加しました。それでも、うまくいきません。

PHPコードは次のようになります。

// Prepare the e-mail to the GUEST
$to = $email;
$subject = "PÅMINNELSE: Bekräfta registrering för Event";

// Defining the headers
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";
$headers .= "From: Pre-registration <event@adomain.com>" . "\r\n";

include("gemailreminder.php");

// Send the mail now!
mail($to, $subject, $message, $headers);

含まれているファイル gemmailreminder.php の内容は次のようになります。

<?php
$message = <<< MESSAGE
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>REMINDER E-MAIL</title>
</head>
<body>
<p >text...</p >
</body>
</html>
MESSAGE;
?>

この問題の解決に役立つ提案はありますか?

前もって感謝します!

//アンドレアス

4

3 に答える 3

0

ご参考までに:

何らかの奇妙な理由で、突然再び機能し始めました。たぶん、私のウェブホテルのプロバイダーは、サーバーまたはセットアップに一定期間問題がありました.

回答を提供するための時間と労力に感謝します。クラス Swiftmailer と phpMail については、さらに詳しく知るつもりです。

アンドレアス

于 2013-08-10T06:32:11.273 に答える
0

ASCII 以外の文字を含むメール コンテンツは、base64 エンコードで送信する必要があります。

これは、PHP の関数を使用して行うのは非常に簡単ですbase64_encode()が、率直に言って、PHP の関数を使用する場合は、このような癖が多すぎて注意が必要ですmail()

私のアドバイスは、作成済みの既存のメーラー クラスの 1 つを使用することです。これらのクラスは、面倒な作業をすべて行ってくれます。ヘッダーをいじったり、エンコーディングを心配したりする必要がなくなり、添付ファイルの送信が簡単になるなどです。

一般的に推奨されるクラスは、SwiftmailerphpMailer です。.

mail()どちらかを使用すれば、古い古い関数を直接呼び出す必要がなくなることを保証します。

于 2013-08-09T13:05:18.593 に答える
0

utf-8 で gemmailreminder.php を保存する必要があります。これを行うには、エディターの設定を使用します。

于 2013-08-09T13:11:19.320 に答える