PDA

View Full Version : ارسال ایمیل از طریق localhost



m_karimi
سه شنبه 14 دی 1389, 23:55 عصر
سلام
برای ارسال ایمیل از طریق localhost چه تنظیماتی روی wamp و php.ini باید انجام بدم؟ لطفا اگر ممکنه دقیق توضیح بفرمایید.متشکرم.

abasfar
چهارشنبه 15 دی 1389, 00:36 صبح
به نظر من بهتر از weconfig که متعلق به asp.net استفاده کنی که خیلی راحت و هم امکانات زیاد دارد

mtchabok
چهارشنبه 15 دی 1389, 11:49 صبح
سلام
فک نکنم که به سادگی بشه با wamp از سرویس ایمیل استفاده کرد . فک کنم یک کامپوننتی ، چیزی باید بهش اضافه بشه .
بهتره که از نرم افزارهای میل سرور استفاده کنید . مثل : axigen ، hmailserver ، arGoSoft و ... .
همچنین می تونید از سرویس ایمیل خود ویندوز هم استفاده کنید .

ravand
چهارشنبه 15 دی 1389, 17:48 عصر
برای راه اندازی ایمیل در لوکال هاست به یکی از دو آدرس زیر می توانید بروید و برنامه ای را که برای این کار قرار داده شده رو دانلود کنید و نصب کنید.

http://www.hmailserver.com (http://www.hmailserver.com/)
http://www.argosoft.com/RootPages/Download.aspx

UnnamE
چهارشنبه 15 دی 1389, 23:49 عصر
دردسر چرا؟
نصب برنامه و بند و بساط چرا ؟
رات با يه كلاس smtp اين كار رو انجام بده
كلاس هم تو نت چپ و راست ريخته هست!

mtchabok
پنج شنبه 16 دی 1389, 12:08 عصر
عزیزم (UnnamE) ایشون که نمی خوان که ایمیل رو ارسال و دریافت کنن . می خوان که یک سرور ایمیل روی سیستم خودشون راه اندازی کنن .

m_karimi
پنج شنبه 16 دی 1389, 14:20 عصر
من فقط می خوام با لوکال هاست ایمیل ارسال کنم.
برای ارسال ایمیل با smtp با کلاس phpmailer کد نمونه زیر رو از سایت gigfa.com دانلود کردم. ولی نمدونم باید چه تنظیماتی انجام بدم.
smtp server رو نصب کردم. و نمونه کد زیر هم اجرا کردم ولی ارور زیر رو می ده.

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\wamp\www\library\smtp-sample\lib\class.smtp.php on line 122

Fatal error: Call to undefined method SMTP::getError() in C:\wamp\www\library\smtp-sample\lib\class.phpmailer.php on line 1910

باید چه کار کنم؟

UnnamE
پنج شنبه 16 دی 1389, 14:36 عصر
عزیزم (UnnamE) ایشون که نمی خوان که ایمیل رو ارسال و دریافت کنن . می خوان که یک سرور ایمیل روی سیستم خودشون راه اندازی کنن .
خي منم ميگم چرا دردسر اينهمه رو داشته باشه
با كلاس همه رو انجام بده، حالا نخواست هم دريافت كنه دست خودشه!
_________________________

برای ارسال ایمیل با smtp با کلاس phpmailer کد نمونه زیر رو پیدا کردم. ولی نمدونم باید چه تنظیماتی انجام بدم.
smtp server رو نصب کردم. و نمونه کد زیر هم اجرا کردم ولی ارور زیر رو می ده.


Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it ]
خب اين يعني اينكه ssl رو مقدار ندادي!
معمولا وقتي ميخواي ارسال كني بايد مقدار ssl‌ رو برابر با tls قرار بدي!
پورت 456 هم ديروز من امتحان كردم، جواب نداد
روي پورت 25 ست كن!

m_karimi
پنج شنبه 16 دی 1389, 14:54 عصر
روی پورت 25 ست کردم .مقدار ssl‌ هم برابر با tls قرار دادم. ارور زیر رو داد.

Fatal error: Call to undefined method SMTP::StartTLS() in C:\wamp\www\library\smtp-sample\lib\class.phpmailer.php on line 803

UnnamE
پنج شنبه 16 دی 1389, 15:31 عصر
اين يه نمونه phpmailer كه از جيميل استفاده ميكنه


require("PHPMailer_v5.1/class.phpmailer.php");

$mail = new PHPMailer();

$body = "Message Body";

$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 25;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "username@gmail.com"; // SMTP username
$mail->Password = "password"; // SMTP password
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SetFrom('from@address.com', 'First Last');

$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAddress('email@address.com', 'First Last');

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
هر چند اين كلاسي كه برداشتي مشكلاتي ظاهرا با ارسال ايميل SSL داره
ولي سعي كن!

Vahid Faraji
پنج شنبه 16 دی 1389, 15:59 عصر
من الان تست كردم و مشكلي نداشت با كد زير. البته نكته اين بود كه من
extension=php_openssl.dll
از حالت كامنت خارج كردم (در php.ini)


<?php
require("lib/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "smtp.gmail.com"; // specify main and backup server
$mail->Port = "465"; // SMTP Port
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->SMTPSecure= "ssl"; // SMTP connection type
/************************************************** *********************************/
/************************************************** *********************************/
$mail->Username = "gmailid"; // SMTP username
$mail->Password = "gmailpass"; // SMTP password
// Send email to :
$mail->AddAddress("yahooid@yahoo.com"); // will receive the test email
/************************************************** *********************************/
/************************************************** *********************************/
//$mail->AddAddress("second-receiver@gmail.com", "Josh Adams");
//$mail->AddReplyTo("example@gmail.com", "Information");
$mail->WordWrap = 50; // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name
$mail->IsHTML(true); // set email format to HTML
$mail->Subject = "Here is the subject";
$mail->Body = "This is the HTML message body <b>in bold!</b>";
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";

?>

m_karimi
پنج شنبه 16 دی 1389, 16:14 عصر
متشکرم حل شد.php.ini رو تنظیم نکرده بودم.
ارور نمی ده. پیغام message has been sent میده ولی تو inbox هنوز چیزی نیومده.

Vahid Faraji
پنج شنبه 16 دی 1389, 16:24 عصر
من با ايميل ياهو خودم تست كردم يعني مقدار متغير AddAddress گذاشتم ايميل ياهوم و اومد تو inboxام بدون هيچ مشكلي.

UnnamE
پنج شنبه 16 دی 1389, 16:26 عصر
متشکرم حل شد.php.ini رو تنظیم نکرده بودم.
ارور نمی ده. پیغام message has been sent میده ولی تو inbox هنوز چیزی نیومده.

ابنجور كه معلومه علت عشق ز علت ها جداست!
همه چيز درست هست
يه بار ديگه درست Copy/Past كن! :لبخند:

m_karimi
پنج شنبه 16 دی 1389, 16:31 عصر
تعداد inbox اضافه میشه ولی داخل میلم چیزی نیست. !!!!!!!!

ravand
پنج شنبه 16 دی 1389, 16:32 عصر
اين يه نمونه phpmailer كه از جيميل استفاده ميكنه


require("PHPMailer_v5.1/class.phpmailer.php");

$mail = new PHPMailer();

$body = "Message Body";

$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 25;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "username@gmail.com"; // SMTP username
$mail->Password = "password"; // SMTP password
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SetFrom('from@address.com', 'First Last');

$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";

$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAddress('email@address.com', 'First Last');

if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}هر چند اين كلاسي كه برداشتي مشكلاتي ظاهرا با ارسال ايميل SSL داره
ولي سعي كن!

کدی که شما دادی در وقاع داره از جیمیل شخصی شما استفاده می کنه ولی برنامه ای که من دادم اینطوری نیست و براتون یه ایمیل می سازه

Vahid Faraji
پنج شنبه 16 دی 1389, 16:36 عصر
شما بايد متغير Body را ست كنيد. برا من دقيقا اين اومده، چيزي كه تو همين مثاله:
This is the HTML message body in bold!

UnnamE
پنج شنبه 16 دی 1389, 16:42 عصر
کدی که شما دادی در وقاع داره از جیمیل شخصی شما استفاده می کنه ولی برنامه ای که من دادم اینطوری نیست و براتون یه ایمیل می سازه

منم اول پست نوشتم

اين يه نمونه phpmailer كه از جيميل استفاده ميكنه
در ضمن اين رفيقمون با كلاس معمولي مشكل داره دديگه واويلا به اون :d

m_karimi
پنج شنبه 16 دی 1389, 21:24 عصر
متشکرم حل شد.php.ini رو تنظیم نکرده بودم.
ارور نمی ده. پیغام message has been sent میده ولی تو inbox هنوز چیزی نیومده.

درست شد.تاریخ سیستمم رو عقب برده بودم به همین خاطر ایمیل رو نمی دیدم.