ارسال ایمیل با لوکال wamp

M_cover

Member
با سلام و درود
من می خواهم توسط لوکال با ومپ سرور ایمیل ارسال کنم
البته تنظیمات smtp و php.ini انجام داده ام ولی باز هم fatal error smtp می دهد
اشکال این هم می دانم که باید میل سرور نصب باشد
اما اکثر نرم افزار های میل سرور روی لوکال های کلاینت نصب نمی شوند یا
با ویندوز های کلاینت مشکل دارنند و فقط تحت سرور کار می کنند
آیا شما میل سروری را می شناسید که بتوان روی کلاینت آن را نصب و پیکربندی کرد
چون برای پروژه های ارسال ایمیل و وری فکیشن و تست پروژه باید لوکال بتواند ایمیل ارسال کند و درگاه smtp
باز باشد
آیا راه حلی شما برای ارسال ایمیل توسط ومپ سرور یا لوکال می شناسید تنظیمات خاصی یا نرم افزار خاصی
برای ویندوز......!!!!
خیلی وقت سرگردون این موضوع ام
با تشکر
 
آخرین ویرایش توسط مدیر:

Domanjiri

Well-Known Member
درود بر شما

شما دو راه دارین:

1- از یک میل سرور خارجی (external) استفاده کنید، آموزش زیر می تونه براتون بی نهایت (!) مفید باشه:

Configuring PHP under Windows to use Gmail or External SMTP Server

2- نصب میل سرور (بطور خاص STMP) روی ویندوز و انجام تنظیمات اون، در پایین لینک چند میل سرور رایگان رو قرار دادم(اکثرشون راهنما دارند):
swiftmailer/

hMailServer

mini-Relay

Test Mail Server Tool

موفق باشین
 
آخرین ویرایش:

Cyletech

Member
وقتی میخوای ومپ سرور رو نصب کنی ازت می پرسه در نهایت که اطلاعات مربوط به ایمیل (SMTP) رو وارد کنید یا اگر اطلاعی در این زمینه ندارید دست به اطلاعات پیشفرض نزنید. اگر دست به اطلاعات پیشفرض نزدید ، میتونی هر یک از خطوط زیر رو در php.ini جستجو کنید و مقدارش رو تغییر بدید به یک مقدار صحیح تر.
کد:
SMTP = localhost
و
smtp_port = 25
و
sendmail_from = you@yourdomain
و
sendmail_path =
توجه کنید که sendmail_path فقط برای سیستم های یونیکس هست و بطور پیشفرض غیر فعاله ! و نیازی هم نیست اگر از ویندوز استفاده می کنید دست به این تنظیم بزنید.

در ضمن ، من از swiftmailer استفاده کردم و بنظرم خیلی خوب و تمیز کار می کنه ولی استفاده از این چنین میلر های پرقدرتی رو برای نرم افزار های حرفه ای پیشنهاد می کنم که زیاد با میل و ایمیل و این چیزا سرو کار دارن. در غیر اینصورت خیلی از ویژگی های این میلر ها اضافی هست.

لینکی هم که دوستمون داده رو حتماً مطالعه کن. :rose:
 
آخرین ویرایش:

M_cover

Member
وقتی میخوای ومپ سرور رو نصب کنی ازت می پرسه در نهایت که اطلاعات مربوط به ایمیل (SMTP) رو وارد کنید یا اگر اطلاعی در این زمینه ندارید دست به اطلاعات پیشفرض نزنید.
دوست من من تمامی تنظیمات smtp را که مربوط به پورت می شود و ... انجام داده ام و اکثر میل سرور ها هم که ذکر کردم
با ویندوز کلاینت نصب نمی شوند آیا شما نرم افزار میل سروری را می شناسید که با ویندوز کلاینت مشکلی نداشته باشد ؟
 

M_cover

Member

دوست من تمام step که گفته شده بود قدم به قدم انجام دادم و توی php.ini هم کانفیگ کردم
اما باز هم ارور می دهد ....
PHP:
Warning:  mail() [function.mail]: SMTP server response: 554 5.7.1
البته یک فاتال ارور هنگی بیش از هد برنامه هم می دهد که اون زمانش را به 120 هم تغییر دادم باز ارور می دهد
PHP:
Fatal error: Maximum execution time of 120 seconds exceeded

البته اگر این امکان شود واقعا ایده جالبی است با استفاده از
command line در میاید که در سرور هم بدون دارار بودن به میل سرور باعث بهبود کارایی ارسال ایمیل ها می شود
 

Domanjiri

Well-Known Member
سلام

بنده به طور مختصر ارسال ایمیل از لوکال رو بوسیله کلاس PHPMailer و با استفاده از سرویس stmp جی میل توضیح میدم، راه اندازی میل سرور نیاز به توضیحات بیشتری داره.

1- PHPMailer رو از اینجا دانلود کنید (طبیعتن در ایران از سرور های mirror باید دانلود کنید!)

2- کد های زیر رو داخل یه فایل، مثلن به اسم mail.php قرار بدین( نام instance ها و method های این کلاس کاملن وظیفه شون رو می رسونه!)
PHP:
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
IsSMTP(); // send via SMTP
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "password"; // SMTP password
$webmaster_email = "[email protected]"; //Reply to this email ID
$email="[email protected]"; // Recipients email ID
$name="name"; // Recipient's name
$mail->From = $webmaster_email;
$mail->FromName = "Webmaster";
$mail->AddAddress($email,$name);
$mail->AddReplyTo($webmaster_email,"Webmaster");
$mail->WordWrap = 50; // set word wrap
$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment
$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // attachment
$mail->IsHTML(true); // send as HTML
$mail->Subject = "This is the subject";
$mail->Body = "Hi,
This is the HTML BODY "; //HTML Body
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}
3- در فایل class.stmp.php ، دنبال mail->host$ و mail->port$ بگردین و مقادیرشون رو اینطور قرار بدین:
PHP:
$mail->Host       = "smtp.gmail.com"; // sets GMAIL as the SMTP server
        $mail->Port       = 465; // set the SMTP port for the GMAIL server
4- کدتون رو اجرا کنید، اگه بدرستی اجرا شد که بسیار عالی، اما اگه اروری مرتبط با ssl نشون داده شد، این معنی رو میده که اکستنشن ssl روی سیستم شما فعال نیست، برید مرحله بعد!

5- فایل php.ini رو باز کنید و « ; » پشت عبارت extension=php_openssl.dll رو بردارید و آپاچی رو ریستارت کنید.

6- خطاهای دیگه ای هم ممکنه رخ بده، لطفن به لینک منبع، که پایین قرار میدم مراجعه کنید. اونجا عده ی زیادی از کاربرها خطاهای و راه حل رفع این خطاها رو بصورت کامنت بیان کردند.

منبع: Send email using PHP with Gmail

پ.ن : این آموزش در سایت های زیادی قرار داده شده، اگه به منبع بالا دسترسی ندارید، کافیه تا همین عنوان لینک بالا رو گوگل کنید.

غلط های املایی و نگارشی رو بزارید به حساب "زمانی که داشتم مطلب رو ارسال می کردم" (ساعت 01:23 )

موفق باشین
 
آخرین ویرایش:

M_cover

Member
بنده به طور مختصر ارسال ایمیل از لوکال رو بوسیله کلاس PHPMailer

سلام و درود مجدد
شما می توانید توضیح دهید که من از این کلاس چگونه می توانم در پروژه پی اچ پی خودم استفاده کنم
PHP:
mail($mailto, $subject, $body, $header);
مثلا من با این تابع ارسال ایمیل می خواهم با کلاس phpmailer ارسال کنم
 

Domanjiri

Well-Known Member
خب این کلاس رو دانلود کنید، داخل کدتون include ِش کنید، و مثل کدی که گذاشتم ازش استفاده کنید، همین! تابع mail رو هم فراموش ِش کنید

موفق باشین
 

M_cover

Member
خب این کلاس رو دانلود کنید، داخل کدتون include ِش کنید، و مثل کدی که گذاشتم ازش استفاده کنید، همین! تابع mail رو هم فراموش ِش کنید
من می خواهم برای کار بر روی پروژه هایم که با توابع php کار میکنم و برای تست پروژه از لوکال ایمیل ارسال کنم و توابع خود php برایم اهمیت دارد
دوست من امکان دارد این سایت آموزشی که خود شما ارایه دادید را بررسی کنید ببینید مشکل خطایی که من برخوردم چیست؟
http://digiex.net/guides-reviews/guides-tutorials/application-guides/544-configuring-php-under-windows-use-gmail-external-smtp-server-ssl.html
 

Domanjiri

Well-Known Member
این اروری که شما چند پست قبل قرار دادین مربوط میشه به "احراز هویت" یا همون Auth .

شما از توضیحاتی که من بصورت گام به گام و با کد قرار دادم چرا استفاده نمی کنید؟! منبع ِش رو هم که قرار دادم.

منابع انگلیسی در این زمینه بسیار فراوونه، همونطور که قبلن هم گفتم، مثلن با گوگل کردن این عبارت send mail via gmail smtp in php تعداد زیادی مطلب مرتبط با این موضوع نمایش داده میشه.

موفق باشین
 

maaha

Member
دوستان من تمام دستئالعمل های این page رو اجرا کردم.هیچ خطایی نمیگیره ولی ایمیل رو هم ارسال نمیکنه!
کد:
http://digiex.net/guides-reviews/guides-tutorials/application-guides/544-configuring-php-under-windows-use-gmail-external-smtp-server-ssl.html
اینم از کد php :
کد:
	<?php
	
	 generatePassword();
	 echo($_SESSION[pass]);
	 $to='ye email'@yahoo.com';//Enter Your Email Address*
$subject='title';//Subject OF Mail
$from='emasar';//User Email Address
$message='greattttttttt';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'To: '.$to . "\r\n";
$headers .= 'From: '.$from . "\r\n";
$headers .= 'Reply-To: '.$to . "\r\n";
$headers .= 'X-Mailer: PHP/'. phpversion();
	 $sendmail=@mail($to, $subject, $message, $headers);
if ($sendmail)
echo "done";//Sucess Message
else
echo "sorry";//Failed Message


    function generatePassword($length=9, $strength=0) {
	$vowels = 'aeuy';
	$consonants = 'bdghjmnpqrstvz';
	if ($strength & 1) {
		$consonants .= 'BDGHJLMNPQRSTVWXZ';
	}
	if ($strength & 2) {
		$vowels .= "AEUY";
	}
	if ($strength & 4) {
		$consonants .= '23456789';
	}
	if ($strength & 8) {
		$consonants .= '@#$%';
	}
 
	$password = '';
	$alt = time() % 2;
	for ($i = 0; $i < $length; $i++) {
		if ($alt == 1) {
			$password .= $consonants[(rand() % strlen($consonants))];
			$alt = 0;
		} else {
			$password .= $vowels[(rand() % strlen($vowels))];
			$alt = 1;
		}
		
	}	
	 $_SESSION[pass]=$password;
	return ($_SESSION[pass]);
	}
?>
 

Cyletech

Member
اینو امتحان کن.
PHP:
  <?php
    
     generatePassword();
     echo($_SESSION[pass]);
     $to='Alireza Eskandarpour <[email protected]>';//Enter Your Email Address*
$subject='title';//Subject OF Mail
$from='emasar';//User Email Address
$message='greattttttttt';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'To: '.$to . "\r\n";
$headers .= 'From: '.$from . "\r\n";
$headers .= 'Reply-To: '.$to . "\r\n";
$headers .= 'X-Mailer: PHP/'. phpversion();
     $sendmail=mail($to, $subject, $message, $headers);
if ($sendmail)
echo "done";//Sucess Message
else
echo "sorry";//Failed Message


    function generatePassword($length=9, $strength=0) {
    $vowels = 'aeuy';
    $consonants = 'bdghjmnpqrstvz';
    if ($strength & 1) {
        $consonants .= 'BDGHJLMNPQRSTVWXZ';
    }
    if ($strength & 2) {
        $vowels .= "AEUY";
    }
    if ($strength & 4) {
        $consonants .= '23456789';
    }
    if ($strength & 8) {
        $consonants .= '@#$%';
    }
 
    $password = '';
    $alt = time() % 2;
    for ($i = 0; $i < $length; $i++) {
        if ($alt == 1) {
            $password .= $consonants[(rand() % strlen($consonants))];
            $alt = 0;
        } else {
            $password .= $vowels[(rand() % strlen($vowels))];
            $alt = 1;
        }
        
    }    
     $_SESSION[pass]=$password;
    return ($_SESSION[pass]);
    }
?>
اگر هم خطایی داد دقیقاً خطاش رو اینجا بگذار ببینیم.
 

maaha

Member
اینو امتحان کن.
PHP:
  <?php
    
     generatePassword();
     echo($_SESSION[pass]);
     $to='Alireza Eskandarpour <[email protected]>';//Enter Your Email Address*
$subject='title';//Subject OF Mail
$from='emasar';//User Email Address
$message='greattttttttt';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'To: '.$to . "\r\n";
$headers .= 'From: '.$from . "\r\n";
$headers .= 'Reply-To: '.$to . "\r\n";
$headers .= 'X-Mailer: PHP/'. phpversion();
     $sendmail=mail($to, $subject, $message, $headers);
if ($sendmail)
echo "done";//Sucess Message
else
echo "sorry";//Failed Message


    function generatePassword($length=9, $strength=0) {
    $vowels = 'aeuy';
    $consonants = 'bdghjmnpqrstvz';
    if ($strength & 1) {
        $consonants .= 'BDGHJLMNPQRSTVWXZ';
    }
    if ($strength & 2) {
        $vowels .= "AEUY";
    }
    if ($strength & 4) {
        $consonants .= '23456789';
    }
    if ($strength & 8) {
        $consonants .= '@#$%';
    }
 
    $password = '';
    $alt = time() % 2;
    for ($i = 0; $i < $length; $i++) {
        if ($alt == 1) {
            $password .= $consonants[(rand() % strlen($consonants))];
            $alt = 0;
        } else {
            $password .= $vowels[(rand() % strlen($vowels))];
            $alt = 1;
        }
        
    }    
     $_SESSION[pass]=$password;
    return ($_SESSION[pass]);
    }
?>
اگر هم خطایی داد دقیقاً خطاش رو اینجا بگذار ببینیم.

کد:
qesyneqyq
Warning: mail() [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() in C:\wamp\www\test\index.php on line 15
sorry
 

maaha

Member
خوب منم همه ی این تنظیمات رو انجام دادم که لوکال جواب بگیرم. حالا از چه سروری استفاده کنم که ساده و سبک باشه.فقط ایمیل رو ارسال کنه؟ php mailer خوبه؟میشه لینک دانلود ولسم بذارید؟:rose:
 

maaha

Member
بچه ها من stunnel رو دانلود کردم و تنظیماتش رو انجام دادم.چه طور توی اسکریپت php فراخوانیش کنم.میشه راهنمایی کنید:-?
 

behrouzhassan

New Member
با استفاده از کلاس phpmailer می توان در localhost ایمیل ارسال کرد.

1.دانلود فایل کلاسphpmailer
2.استفاده از کد زیر
<?php
require_once 'phpmailer/class.phpmailer.php';
$php=new PHPMailer();
$php->AddAddress("[email protected]");
$php->SetFrom("[email protected]");
$php->Subject="m";
$php->Body="hellooooooo";
$php->IsSMTP();
$php->Host="smtp.gmail.com";
$php->Username="[email protected]";
$php->Password="passwordgmail";
$php->SMTPSecure="ssl";
$php->Port=465;
$php->SMTPAuth=true;
if($php->Send())
{
echo 'yes';
}
else
{
echo 'no';
}
?>
3.تنظیمات ssl از طریق اپاچی و پی اچ پی از ومپ سرور

بهروز..09186076360
 

جدیدترین ارسال ها

بالا