PDA

View Full Version : ارسال ایمیل :: جمع بندی



Mah
سه شنبه 29 آبان 1386, 08:12 صبح
سلام دوستان .
من دو راه برای ارسال میل در php می شناسم .:متفکر:
1- استفاده از تابع mail .
2- استفاده از روشی همانند perl . که همانند نوشتن در یک فایل است .

قبل از هر چیز :
سیستم عامل : ویندوز XP
اسمارت : Easy PHP 2.01beta
وب سرور : Apache
در ضمن IIS را بهمراه smtp سرور IIS بر روی سیستمم نصب است .
من روی Local هم کار می کنم .

حالا هر کدام را بررسی می کنیم :
من برای ارسال میل به وسیله تابع mail() دچار مشکلاتی شدم .
با جستجوهایی که انجام دادم به نتایج خوبی نرسیدم اما تصمیم گرفتم تمامی مشکلات و راه حلهای قبلی را بررسی کنم .


لطفاً دوستان هم کمک نمایند .

تابع ini_set() برای مقداردهی یک متغیر یا تغییر مقدار آن به کار می رود .

شما برای تغییر یک مقدار می توانید فایل php.ini را تغییر دهید یا از این تابع استفاده نمائید .



$to="ToMail@yahoo.com";
$subject="Salam";
$bodyMessage="This Part is Body of My Messaage .";
$from="MyMail@gmail.com";

$header='From: "'.$from.'" <'.$from."> \n"
.'Reply-To: "'.$from.'" <'.$from."> \n"
.'To:<'.$to."> \n"
."Mime-Version: 1.0 \n"
."Content-type: text/plain; charset=utf-8 \n"
."Content-Transfer-Encoding: 7bit \n";

ini_set('SMTP',"localhost");
ini_set('sendmail_from',$from);

mail($to,$subject,$bodyMessage,$header);



Error :


Warning: mail() [function.mail (http://127.0.0.1/Nezam/function.mail)]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

خب به نظر شما اشکال این کد کجاست ؟

Mah
سه شنبه 29 آبان 1386, 12:18 عصر
ادامه :

راه دوم :



function SendmailSend($header, $body) {
if ($this->Sender != "")
$sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender);
else
$sendmail = sprintf("%s -oi -t", $this->Sendmail);

if(!@$mail = popen($sendmail, "w"))
{
$this->SetError($this->Lang("execute") . $this->Sendmail);
return false;
}

fputs($mail, $header);
fputs($mail, $body);

$result = pclose($mail) >> 8 & 0xFF;
if($result != 0)
{
$this->SetError($this->Lang("execute") . $this->Sendmail);
return false;
}

return true;
}



منبع :
http://www.mediengestalter.info/forum/10/php-script-funktioniert-nicht-warum-37132-1.html

همچنان منتظر حضور دوستان برای پاسخ هستم .

cybercoder
سه شنبه 29 آبان 1386, 12:33 عصر
خب به نظر شما اشکال این کد کجاست ؟

Mail Server ت رو کانفیگ کن. در تالار شبکه جستجو کن قبلا بحث شده

tabib_m
سه شنبه 29 آبان 1386, 16:16 عصر
در مورد کد دوم
کدی که شما اینجا گذاشتی، فقط یک متد از یک کلاس برای ارسال ایمیل هست و به تنهایی هیچ اهمیتی نداره و هیچ کاری هم انجام نمیده.

در کل برای ارسال ایمیل شما دو تا راه (به صورت عمومی) داری. یکی استفاده از تابع mail (http://ir2.php.net/manual/en/function.mail.php).
و یکی هم استفاده از SMTP Server (http://en.wikipedia.org/wiki/Smtp_server) که اگر توضیح فارسی میخوای، اینجا (http://weblog.nabi.ir/post-9.html) میتونه مفید باشه.

موفق باشید