krasus
شنبه 07 فروردین 1395, 21:32 عصر
سلام
من با استفاده از PHPMailer ایمیلم رو از هاست خودم به مثلا یاهو ارسال می کنم اما مشکل اینجاست که وقتی متن ترکیبی از کاراکتر های انگلیسی و فارسی هست ایمیل ارسال نمیشه ولی وقتی فقط از کاراکتر های فارسی استفاده می کنم ایمیل یه درستی ارسال میشه !!!
مشکلش کجاست؟
<?PHP
$userMail = 'emailam@yahoo.com';
// $userMail = 'emailam@gmail.com';
$msgHtml = '
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p style="direction: rtl;">نام کاربری و کلمه عبور شما جهت ورود به سامانه</p>
<p style="direction: rtl;">نام کاربری : </p>
<p>abcd</p>
<p style="direction: rtl;">کلمه عبور : </p>
<p>efgh</p>
</body>
</html>';
/*
این درست ارسال میشه
$msgHtml = '
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p style="direction: rtl;">نام کاربری و کلمه عبور شما جهت ورود به سامانه</p>
<p style="direction: rtl;">نام کاربری : </p>
<p style="direction: rtl;">کلمه عبور : </p>
</body>
</html>';
*/
require_once('PHPMailer/class.phpmailer.php');
echo sendMailFromMatianMail($userMail, $msgHtml);
function sendMailFromMatianMail($userMail, $msgHtml)
{
$mail = new PHPMailer(true);
$mail->IsSMTP();
//http://www.matiaan.com/roundcube/
try {
$mail->Host = 'mail.domain.com'; // آدرس SMTP سرور شما
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
// $mail->SMTPSecure = 'ssl';
// $mail->Port = 465;
// $mail->SMTPDebug = 1;
$mail->Username = 'info@domain.com'; // نام کاربری SMTP
$mail->Password = 'password'; // کلمه عبور SMTP
$mail->AddReplyTo('info@domain.com', 'info@domain.com'); // افزودن پاسخ به ارسال کننده
$mail->AddAddress($userMail, $userMail); // تنظیم آدرس گیرنده ایمیل
// تنظیم قسمت ارسال کننده ایمیل
$mail->SetFrom('info@domain.com', 'پشتیبانی متیان');
$mail->Subject = 'بازیابی اطلاعات ورود به سامانه متیان';
//متنی برای کاربرانی که نمی توانند ایمیل را به درستی مشاهده کنند
$mail->AltBody = 'برنامه شما از این ایمیل پشتیبانی نمی کند، برای دیدن آن، لطفا از برنامه دیگری استفاده نمائید';
$mail->CharSet = 'UTF-8'; // یونیکد برای زبان فارسی
// $mail->ContentType = 'text/html'; // استفاده از html
$mail->ContentType = 'text/plain'; // استفاده از html
$mail->MsgHTML($msgHtml);
$mail->Send(); // ارسال
return 'پیام با موفقیت ارسال شد';
}
catch (phpmailerException $e) {
return $e->errorMessage(); // پیام خطا از phpmailer
}
catch (Exception $e) {
return $e->getMessage(); // سایر خطاها
}
}
?>
من با استفاده از PHPMailer ایمیلم رو از هاست خودم به مثلا یاهو ارسال می کنم اما مشکل اینجاست که وقتی متن ترکیبی از کاراکتر های انگلیسی و فارسی هست ایمیل ارسال نمیشه ولی وقتی فقط از کاراکتر های فارسی استفاده می کنم ایمیل یه درستی ارسال میشه !!!
مشکلش کجاست؟
<?PHP
$userMail = 'emailam@yahoo.com';
// $userMail = 'emailam@gmail.com';
$msgHtml = '
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p style="direction: rtl;">نام کاربری و کلمه عبور شما جهت ورود به سامانه</p>
<p style="direction: rtl;">نام کاربری : </p>
<p>abcd</p>
<p style="direction: rtl;">کلمه عبور : </p>
<p>efgh</p>
</body>
</html>';
/*
این درست ارسال میشه
$msgHtml = '
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p style="direction: rtl;">نام کاربری و کلمه عبور شما جهت ورود به سامانه</p>
<p style="direction: rtl;">نام کاربری : </p>
<p style="direction: rtl;">کلمه عبور : </p>
</body>
</html>';
*/
require_once('PHPMailer/class.phpmailer.php');
echo sendMailFromMatianMail($userMail, $msgHtml);
function sendMailFromMatianMail($userMail, $msgHtml)
{
$mail = new PHPMailer(true);
$mail->IsSMTP();
//http://www.matiaan.com/roundcube/
try {
$mail->Host = 'mail.domain.com'; // آدرس SMTP سرور شما
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
// $mail->SMTPSecure = 'ssl';
// $mail->Port = 465;
// $mail->SMTPDebug = 1;
$mail->Username = 'info@domain.com'; // نام کاربری SMTP
$mail->Password = 'password'; // کلمه عبور SMTP
$mail->AddReplyTo('info@domain.com', 'info@domain.com'); // افزودن پاسخ به ارسال کننده
$mail->AddAddress($userMail, $userMail); // تنظیم آدرس گیرنده ایمیل
// تنظیم قسمت ارسال کننده ایمیل
$mail->SetFrom('info@domain.com', 'پشتیبانی متیان');
$mail->Subject = 'بازیابی اطلاعات ورود به سامانه متیان';
//متنی برای کاربرانی که نمی توانند ایمیل را به درستی مشاهده کنند
$mail->AltBody = 'برنامه شما از این ایمیل پشتیبانی نمی کند، برای دیدن آن، لطفا از برنامه دیگری استفاده نمائید';
$mail->CharSet = 'UTF-8'; // یونیکد برای زبان فارسی
// $mail->ContentType = 'text/html'; // استفاده از html
$mail->ContentType = 'text/plain'; // استفاده از html
$mail->MsgHTML($msgHtml);
$mail->Send(); // ارسال
return 'پیام با موفقیت ارسال شد';
}
catch (phpmailerException $e) {
return $e->errorMessage(); // پیام خطا از phpmailer
}
catch (Exception $e) {
return $e->getMessage(); // سایر خطاها
}
}
?>