Saya mencoba menggunakan PHPMailer untuk mengirim pendaftaran, aktivasi. dll surat kepada pengguna:
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;
}
The $message
berisi karakter latin. Sayangnya semua webmail (gmail, webmail.mydomain.org, emailaddress.domain.xx) menggunakan kode yang berbeda.
Bagaimana saya bisa memaksa menggunakan pengkodean UTF-8 untuk menampilkan email saya persis sama di semua kotak surat?
Saya mencoba mengkonversi lebar header surat mb_convert_encoding()
, tetapi tidak berhasil.
Jawaban:
Jika Anda 100% yakin $ message mengandung ISO-8859-1 Anda dapat menggunakan utf8_encode seperti yang dikatakan David. Kalau tidak, gunakan mb_detect_encoding dan mb_convert_encoding pada $ message.
Perhatikan juga itu
Harus diganti dengan:
Dan ditempatkan setelah instantiasi kelas (setelah
new
). Properti bersifat case sensitif! Lihat dokumen PHPMailer daftar & ejaan yang tepat.Pengkodean standar PHPMailer juga
8bit
dapat menjadi masalah dengan data UTF-8. Untuk memperbaiki ini, Anda dapat melakukan:Perhatikan bahwa
'quoted-printable'
mungkin akan bekerja juga dalam kasus-kasus ini (dan bahkan mungkin'binary'
). Untuk lebih jelasnya Anda bisa membaca RFC1341 - Field Header Penyandian-Transfer-Konten .sumber
baris
$mail -> CharSet = "UTF-8";
harus setelah$mail = new PHPMailer();
dan tanpa spasi!coba ini
sumber
Maaf karena terlambat datang ke pesta. Bergantung pada konfigurasi server Anda, Anda mungkin harus menentukan karakter secara ketat dengan huruf kecil utf-8, jika tidak maka akan diabaikan. Coba ini jika Anda berakhir di sini mencari solusi dan tidak ada jawaban di atas yang membantu:
harus diganti dengan:
sumber
Saya bekerja sendiri dengan cara ini
http://php.net/manual/en/function.utf8-decode.php
sumber
sumber
Saya mendapatkan & oacute; dalam $ mail-> Subjek / w PHPMailer.
Jadi bagi saya solusi lengkapnya adalah:
Semoga ini bisa membantu.
sumber
Ketika bukan dari yang di atas berfungsi, dan email masih terlihat seperti
ª הודפסה ×•× ×©×œ
:sumber
@ $mail -> charSet = "UTF-8";
--- baris ini harus di bawah
$mail = new PHPMailer(); line.
pff ..
Ya itu benar. Anda harus meletakkannya setelah objek objek.
sumber
Cara paling sederhana dan akan membantu Anda adalah dengan mengatur CharSet ke UTF-8
sumber
Untuk menghindari masalah pengkodean karakter dalam mengirim email menggunakan kelas PHPMailer kita dapat mengkonfigurasinya untuk mengirimnya dengan pengkodean karakter UTF-8 menggunakan parameter "CharSet", seperti yang dapat kita lihat dalam kode Php berikut:
sumber
$ mail -> charSet = "UTF-8"; --- baris ini harus di bawah $ mail = PHPMailer baru (); baris.
pff ..
sumber