PDA

View Full Version : سوال: ارسال ایمیل با کلاس not execute: /usr/sbin/sendmail phpmailer



moslem_f
سه شنبه 05 شهریور 1392, 00:28 صبح
سلام عرض ادب و خسته نباشید در انجمن های مختلفی این مطلب رو سرچ کردم اما متاسفانه به نتیجه درستی نرسیدم در این انجمن هم یا به علت پیدا نکردن کیورد خاص یا نبودن مطلب به نتیجه نرسیدم پس بر این شدم تا دست به دامن بشم :لبخند: میرم سر اصل مطلب با تشکر ؛


من از کلاس phpmailer برای ارسال ایمیل استفاده کردم که این کلاس رو به پیوست تقدیم حضورتان میکنم تا بیشتر راهنمایی کنید ؛

با استفاده از این کلاس function درست کردم با نام sendEmail این فانکشن کارش ارسال ایمیل هست که در ادامه کامل function رو براتون میزارم که به شرح زیر هست ؛



/// ارسال ایمیل



function sendEmail($title,$useremail,$body)
{
require_once('class.phpmailer/class.phpmailer.php');

$mail = new PHPMailer(); // defaults to using php "mail()"

$mail->IsSendmail(); // telling the class to use SendMail transport

//$body = file_get_contents('contents.html');

$mail->SetFrom('info@p30pdf.ir', 'First Last');
$address = "info.p30pdf@yahoo.com";
$mail->AddAddress($useremail, "John Doe");
$mail->AddAddress($address, "John Doe");

$mail->Subject = "$title";

$mail->AltBody = "این ایمیل ممکن است حاوی تصاویر باشد لذا ایمیل خود را به صورت اچ تی ام ال مشاهده نمایید"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAttachment("images/phpmailer.gif"); // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
return false;

} else {
return true;

}
}


حالا این function رو include کردم به صفحه contactus.php خودم که همون فرم تماس با ما هست .

و حال کد پی اچ پی contactus.php به شرح زیر هست ؛



if (isset($_POST['submit']))
{
if(isset($_POST['title']) AND !empty($_POST['title']) AND isset($_POST['body']) AND !empty($_POST['body']))
{
$title = $_POST['title'];
$useremail = $_POST['email'];
$body = $_POST['body'];
$result = sendEmail($title,$email,$body);
if($result)
{
echo "پیام شما با موفقیت ارسال شد";
}
else
{
echo "خطایی در ارسال ایمیل رخ داده است لطفا موارد را با دقت وارد کنید";
}
}
}


و کد HTML مربوط به فرمم هم به شرح زیر هست ؛



<form method="post">
عنوان : <input name="title" type="text" /><br />
ایمیل شما : <input name="email" type="text" /><br />
متن پیام شما : <textarea name="body" cols="40" rows="10"></textarea>
<input name="submit" type="submit" value="ارسال" />
</form>


و حال این که هنگامی که از صفحه تماس با ما عنوان رو وارد می کنم ، ایمیلمو وارد می کنم و متن پیام رو وارد کرده و ارسال رو میزنم function من false میشه و پیغام خطایی در ارسال ایمیل رخ داده است لطفا موارد را با دقت وارد کنید echo میشه که در شروط صفحه contactus.php که در بالا کدشو نشونتون دادم می بینید و بعد از نمایش پیام ، پیامی مبنی بر Invalid address: Could not execute: /usr/sbin/sendmail میده و ایمیل ارسال نمیشه و همه تنظیمات در تابع sendEmail مربوط به کلاس phpmailer هم که قابل مشاهده شما هست که در اول متن گذاشتم در ضمن در صورت نیاز برای این که بدونید امکان ارسال ایمیل در هاست سایت من روی سرور وجود دارد یا نه اگر نیاز هست بگید تا phpinfo رو پیام خصوصی کنم یا این که اگر میدونید فانکشن خاصی باید باز باشه بگید تا من ببینم و به شما بگم . خواهش می کنم در صورت امکان اگر امکان کمک هست دریغ نکنید با تشکر.
ارادتمند : مسلم فلاح نیت
109759

moslem_f
سه شنبه 05 شهریور 1392, 02:17 صبح
در ضمن روی لوکال نیست روی اینترنت هست یعنی روی سرور