PDA

View Full Version : حرفه ای: اجرا کردن یه اسکریپت پی اچ پی به محض دریافت یه ایمیل جدید ( این تاپک برای بار سوم ایجاد شده)



idocsidocs
پنج شنبه 22 دی 1390, 03:01 صبح
من برای اینکه یه سیستم ارسال و دریافت ایمیل ساده طراحی کنم، قبلا دو تاپک ایجاد کرده بودم (تاپک اول (http://barnamenevis.org/showthread.php?318355-%D8%B3%D8%A7%DB%8C%D8%AA-%DB%8C%D8%A7%D9%87%D9%88-%D9%85%D9%88%D9%82%D8%B9-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%A7%DB%8C%D9%85%DB%8C%D9%84%D8%8C-%DA%86%D8%B7%D9%88%D8%B1-%DA%86%DA%A9-%D9%85%DB%8C-%DA%A9%D9%86%D9%87-%DA%A9%D9%87-%D8%A7%DB%8C%D9%85%DB%8C%D9%84-%DA%AF%DB%8C%D8%B1%D9%86%D8%AF%D9%87-%D9%88%D8%AC%D9%88%D8%AF-%D8%AF%D8%A7%D8%B1%D9%87-%DB%8C%D8%A7-%D9%86%D9%87%D8%9F)، تاپک دوم (http://barnamenevis.org/showthread.php?321627-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%A7%DB%8C%D9%85%DB%8C%D9%84-%28%D9%87%D9%86%D9%88%D8%B2-%D8%A8%D9%87-%D8%AC%D9%88%D8%A7%D8%A8-%D9%86%D8%B1%D8%B3%DB%8C%D8%AF%D9%85%29)) ولی به نتیجه نرسیدم. مجددا این بحث رو ادامه می دم.

برای نوشتن سیستم ثبت نام، لاگین و لاگ اوت و حتی نوشتن ارسال و ویرایش ایمیل ها هم مشکلی ندارم.

تنها مشکل من موقع دریافت ایمیل هست. لطفا بگید که چطور می تونم به محض دریافت ایمیل، یه اسکریپت پی اچ پی رو فعال کنم تا بتونم به دیتابیس وصل بشم و ببینم که آیا آدرس گیرنده توی دیتابیس موجود هست یا نه.

البته می شه موقع لاگین کردن کاربر از توابع imap استفاده کرد ولی من می خوام به محض دریافت ایمیل و بدون نیاز به لاگین کردن کاربر، دیتابیس رو چک کنم.

لطفا در این مورد توضیح بدید.

tux-world
پنج شنبه 22 دی 1390, 08:08 صبح
As other have hinted there are two approaches:
1) configure your mail delivery agent (or mail transport agent) to route the incoming message via a filter
2) Have a scheduled job poll the mailbox to see if new messages have arrived
The first method totally depends on how your MTA / MDA is configured - with luck your server may be using procmail which is a very flexible tool (configured via the file .procmailrc in the home dir of the user whom owns the mailbox). e.g.
:0 * ^To:.*replay@xx.com * !FROM_DAEMON | /usr/bin/php -q /path/to/yourscript.php
Then read the email from stdin in yourscript.php
Add a space f to the first line (:0 f) and write a copy to stdout if you want it to go to the mailbox as well. Note that there is a whole lot of things you can configure using procmail. The ! FROM_DAEMON should eliminate most feedback loops.
If not, most MDA's will support routing through a filter using a .forward file in the users home dir.
Put this in the file:
| /usr/bin/php -q /path/to/yourscript.php
Note that ALL mail which would have been delivered to the users mailbox will now to the program INSTEAD of the mailbox. If you want to recover the emails you'll need to piggy back your own delivery agent within your script or forward the message to another address. Also, you'll need to deal with bou

J.Masomi
پنج شنبه 22 دی 1390, 09:23 صبح
با سلام
شما هر کاری کنید اسکریپت php سمت سرور است و تا درخواست نیاد run نمی شه ولی فکر کنم از cronjob میتونی استفاده کنی که در بازه های زمانی مختلف انجام بدهد.

idocsidocs
پنج شنبه 22 دی 1390, 10:14 صبح
شما هر کاری کنید اسکریپت php سمت سرور است و تا درخواست نیاد run نمی شه ولی فکر کنم از cronjob میتونی استفاده کنی که در بازه های زمانی مختلف انجام بدهد.
توی سایتهای اراسل ایمیل مثل یاهو، به محض اینکه یه ایمیل اشتباه بفرستیم، یاهو با ارسال یه پیام بهمون خبر می ده که آدرس گیرنده وجود نداره.

اونها این کار رو چطور انجام می دن؟