PHPMailerを使用して登録、アクティベーションを送信しようとしています。ユーザーへのその他のメール:
require("class.phpmailer.php");
$mail -> charSet = "UTF-8";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.mydomain.org";
$mail->From = "[email protected]";
$mail->SMTPAuth = true;
$mail->Username ="username";
$mail->Password="passw";
//$mail->FromName = $header;
$mail->FromName = mb_convert_encoding($header, "UTF-8", "auto");
$mail->AddAddress($emladd);
$mail->AddAddress("[email protected]");
$mail->AddBCC('[email protected]', 'firstadd');
$mail->Subject = $sub;
$mail->Body = $message;
$mail->WordWrap = 50;
if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
}
$message
にはラテン文字が含まれています。残念ながら、すべてのウェブメール(gmail、webmail.mydomain.org、emailaddress.domain.xx)は異なるコーディングを使用しています。
UTF-8コーディングを使用して、すべてのメールボックスでまったく同じメールを表示するにはどうすればよいですか?
メールヘッダーの幅mb_convert_encoding()
を変換しようとしましたが、運がありません。
$ messageにISO-8859-1が含まれていることを100%確信している場合、Davidが言うように tf8_encode を使用できます。それ以外の場合は、$-messageで mb_detect_encoding および mb_convert_encoding を使用します。
また、それに注意してください
$mail -> charSet = "UTF-8";
次のものに置き換える必要があります。
$mail->CharSet = 'UTF-8';
Andが置かれたafterクラスのインスタンス化(new
の後)プロパティでは大文字と小文字が区別されます! PHPMailer doc リストと正確なスペルを参照してください。
また、PHPMailerのデフォルトのエンコーディングは8bit
であり、UTF-8データに問題がある可能性があります。これを修正するには、次のことができます。
$mail->Encoding = 'base64';
これらの場合、'quoted-printable'
もおそらく機能することに注意してください(おそらく'binary'
でさえ)。詳細については、 RFC1341-Content-Transfer-Encodingヘッダーフィールド を参照してください。
$mail -> CharSet = "UTF-8";
$mail = new PHPMailer();
行$mail -> CharSet = "UTF-8";
は$mail = new PHPMailer();
の後にスペースを入れないでください!
これを試して
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
パーティーに遅れてすみません。サーバーの構成によっては、小文字 utf-8で厳密に文字を指定する必要がある場合があります。そうでない場合は無視されます。ここで解決策を探して、上記の回答が役に立たない場合は、これを試してください:
$mail->CharSet = "UTF-8";
次のものに置き換える必要があります。
$mail->CharSet = "utf-8";
私はこのように働いています
$mail->FromName = utf8_decode($_POST['name']);
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->Encoding = "16bit";
$ mail-> Subject/w PHPMailerでóを取得していました。
私にとって完全なソリューションは次のとおりです。
// Your Subject with tildes. Example.
$someSubjectWithTildes = 'Subscripción España';
$mailer->CharSet = 'UTF-8';
$mailer->Encoding = 'quoted-printable';
$mailer->Subject = html_entity_decode($someSubjectWithTildes);
それが役に立てば幸い。
@ $mail -> charSet = "UTF-8";
---この行は下にあるはずです
$mail = new PHPMailer(); line.
pff ..
はい、正しいです。オブジェクトのインスタンス化後に配置する必要があります。
クラスPHPMailerを使用してメールを送信する際の文字エンコードの問題を回避するために、次のPHPコードでわかるように、「CharSet」パラメーターを使用してUTF-8文字エンコードで送信するように設定できます。
$mail = new PHPMailer();
$mail->From = '[email protected]';
$mail->FromName = 'Mi nombre';
$mail->AddAddress('[email protected]');
$mail->Subject = 'Prueba';
$mail->Body = '';
$mail->IsHTML(true);
// Active condition utf-8
$mail->CharSet = 'UTF-8';
// Send mail
$mail->Send();
メッセージがLatin1を使用している場合は、 tf8_encode Works for meを使用できます。
最も簡単な方法は、CharSetをUTF-8に設定することです。
$mail->CharSet = "UTF-8"