نمایش نتایج 1 تا 12 از 12

نام تاپیک: ارسال ایمیل در یک تاریخ خاص با php

  1. #1

    ارسال ایمیل در یک تاریخ خاص با php

    سلام دوستان خسته نباشید

    دارم برنامه ای مینویسم تا به سایت چند زمان بدم و سایت سر اون زمان ها ایمیل هایی رو ارسال کنه.
    یه راه برای این کار استفاده از قابلیت corn jobs سی پنل هست.اما این کار خیلی مشکلی هست.
    مثلا باید corn jobs رو طوری تنظیم کرد تا هر 10 دقیقه به یه صفحه (صفحه پرداز مورد نظر ما) بره و مدام چک کنه موعد تاریخ های مورد نظر فرا رسیده یا نه.خب اینطوری یکم سرور هم مشغول هست و کار زیاد جالبی هم نیست

    راه دیگه ای وجود نداره که ما در دیتابیس تاریخ یا زمان برای آینده بدیم (مثلا 15 روز دیگه ساعت 13:45 دقیقه) و بدون استفاده از corn jobs عملیات مورد نظر انجام بشه؟؟؟؟


    ممنون

  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    سن
    32
    پست
    61

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    با سلام خدمت شما دوست عزیزم
    برای این کار میشه از قالب روز ماه سال استفاده کرد اما من بهتون توصیه میکنم این کارو نکنید
    شما با استفاده از دستورdate('U') زمان رو بر حسب ثانیه بدست میاری بعد مثلا میخای یک ساعت بعد ایمیل ارسال بشه
    خب پس قاعدتا این زمانی که به دست اوردی باید با عدد ۳۶۰۰ ثانیه جمع بشه
    پس مرور میکنیم
    شما تایم النو با اون کد که گفتم بدست میاری
    زمانی هم که قراره ایمل ارسال بشه رو بدست میاری
    بعد یه شرط میذاری که اگه زمان الان برابر بود با اون زمان دلخواهی که توی بانک اطلاعاتیه ایمیل بفرست

    set_time_limit(0);// code ro hamishe ejra negah midare
    $now = date('U');
    $time_of_send = $now + 15*24*60*60; // 15 ruze ayande
    unset ($now);
    if (date('U') == $time_of_send)
    Ersale email...

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

  3. #3

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    نقل قول نوشته شده توسط aghasoroush مشاهده تاپیک
    با سلام خدمت شما دوست عزیزم
    برای این کار میشه از قالب روز ماه سال استفاده کرد اما من بهتون توصیه میکنم این کارو نکنید
    شما با استفاده از دستورdate('U') زمان رو بر حسب ثانیه بدست میاری بعد مثلا میخای یک ساعت بعد ایمیل ارسال بشه
    خب پس قاعدتا این زمانی که به دست اوردی باید با عدد ۳۶۰۰ ثانیه جمع بشه
    پس مرور میکنیم
    شما تایم النو با اون کد که گفتم بدست میاری
    زمانی هم که قراره ایمل ارسال بشه رو بدست میاری
    بعد یه شرط میذاری که اگه زمان الان برابر بود با اون زمان دلخواهی که توی بانک اطلاعاتیه ایمیل بفرست

    set_time_limit(0);// code ro hamishe ejra negah midare
    $now = date('U');
    $time_of_send = $now + 15*24*60*60; // 15 ruze ayande
    unset ($now);
    if (date('U') == $time_of_send)
    Ersale email...

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

    اما منظورم اینه که این ارسال خودکار در زمان مقرر انجام بشه و وابسته به عملیات از سمت کاربر نباشه.
    یعنی ابتدا شما به سایت میگید "28/8/1390 - 16:40" ایمیلی با متن "سلام.خسته نباشید" به آدرس x ارسال کن.
    این دستور در یه table داخل دیتابیس ذخیره میشه.اما فرضا الان اون زمان مقرر هست.سرور از کجا تشخیص بده این زمان فرا رسیده تا عملیات ذخیره شده رو اجرا کنه؟
    میشه از corn jobs استفاده کرد.اما این روش خیلی کار از سرور میکشه و مناسب برای هر کاری نیست.

    روشی که شما فرمودید ، فکر کنم وابسته به اینه که مثلا هر بازدید کننده که وارد سایت میشه ، time ورود این بازدید کننده با تایم های ذخیره شده در دیتابیس مقایسه میشه.اگر تایم ها یکی بودن عملیات انجام میشه.اما بازدید سایت اونقدر بالا نیست که بشه عملیات رو وابسته به ورود کاربران کرد.

    بازم که منظورم رو متوجه نشدید ، بفرمایید تا بیشتر توضیح بدم.

    ممنون :)

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    سن
    32
    پست
    61

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    با سلام مجدد
    ببینید دوست من، شما خودت اون کد رو اجرا میکنی و به کاربر ربطی نداره
    وقتی یه بار اجراش کنی تا زمانی که سرور ریست نشه اون فایل پی اچ پی اجرا میمونه
    البته کد من اشکال داشت چون اگه به هر دلیل کد دوباره اجرا بشه زمان مورد نظر تغییر میکنه
    این کدی که دادم بهتون تقریبا کار کران جاب رو انجام میده و تایم اوت نمیشه
    شما تمام کاری که باید بکنی اینه که یه کد پی اچ پی بنویسی که دائم اجرا باشه و چک کنه هر ۱۰ ثانیه که آیا زمان الان برابر هست با زمان مورد نظر یا خیر
    اگه شرط درست بود ارسال رو انجام بده
    من براتون کدش رو طی چند ساعت آینده میذارم الان با گوشیم کد نویسیم یه ذره سخته
    موفق باشید

  5. #5

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    نقل قول نوشته شده توسط aghasoroush مشاهده تاپیک
    این کدی که دادم بهتون تقریبا کار کران جاب رو انجام میده و تایم اوت نمیشه
    شما تمام کاری که باید بکنی اینه که یه کد پی اچ پی بنویسی که دائم اجرا باشه و چک کنه هر ۱۰ ثانیه که آیا زمان الان برابر هست با زمان مورد نظر یا خیر
    سلام.ممنون بخاطر توجه تون
    اما مشکلی که الان هست اینه که شاید از این عملیات ها 100 تا وجود داشته باشه در قسمت های مختلف ساید.بعد 100 تا صفحه مدام بخواد اجرا بشه برای چک کردن ، خیلی کار از سرور میکشه

    ممنون

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    سن
    32
    پست
    61

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    دوست من اصلا کار قابل توجهی نمیکشه
    باید خوب روی تعریف متغیرات دقت کنی تا منابع بی خودی اشغال نشن
    من چند ساعت دیگه که کد کامل رو برات گذاشتم چند تا مورد رو هم برات مثال میزنم
    موفق باشی

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    سن
    32
    پست
    61

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    با سلام خدمت شما دوست خوبم
    من این کد رو به صورت نمونه میدم بهتون
    شما بهینش کنید و استفاده کنید
    <?php
    /**
    * @author Soroush
    * @copyright 2011
    */
    set_time_limit(0);
    /*
    inja dastoorate database ro minevisid ke zamane morede nazar ro az database bekhoone
    masalan zamane morede nazar ro mirizim tooye motaghayere $time
    */
    $time = 1322947930; // masalan in meghdar tooye database zakhire shode ama man khodam dasti daram meghdar midam
    function check($mail,$subject,$msg)
    {
    if (date('U') >= $time)
    {
    mail($mail,$subject,$msg);
    }
    }
    while($i=0) //in ye halgheye bi nahayate ke baraye hamishe edame dare
    {
    check("aghasoroush@gmail.com","salam","Lotfan hesabe karbarie khod ra check konid");
    sleep(60); // in baes mishe ke kamtar be server feshar biad va har daghighe faghat 1 bar code ejra beshe
    }
    ?>


    من این کد رو اجرا کردم و حتی 1 درصد cpu هم نگرفت
    موفق باشید

  8. #8
    کاربر دائمی آواتار Arthas1990
    تاریخ عضویت
    آبان 1389
    محل زندگی
    مشهد
    سن
    33
    پست
    133

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    آقا سروش ممنون ازینکه به سوال دوسته گلمون جواب دادی .
    و اما ghiravani گل :
    بهترین راهش ساختن کرون جبه با php . باید یه کرون جاب بسازی (البته نه با cpanel و غیره) با خوده سرورت و سپس به کرونت تاریخ بدی تا برنامت رو اجرا کنه ، بنابراین میتونی خیلی راحت هر زمان و هرتعداد که میخوای در ساعتی خاص و برنامه های مختلف رو اجرا کنی . توضیحاته بیشتر رو بهم بزنگ یا pm بده به یاهوم تا بت بگم و بعدش وا3 اینکه دیگر دوستانم استفاده کنن بیار تو برنامه نویس خودت توضیح بده و اگه جواب داد تشکر یادت نره
    امیدوارم کمکی کرده باشم

  9. #9
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    نقل قول نوشته شده توسط aghasoroush مشاهده تاپیک
    با سلام خدمت شما دوست خوبم
    من این کد رو به صورت نمونه میدم بهتون
    شما بهینش کنید و استفاده کنید
    <?php
    /**
    * @author Soroush
    * @copyright 2011
    */
    set_time_limit(0);
    /*
    inja dastoorate database ro minevisid ke zamane morede nazar ro az database bekhoone
    masalan zamane morede nazar ro mirizim tooye motaghayere $time
    */
    $time = 1322947930; // masalan in meghdar tooye database zakhire shode ama man khodam dasti daram meghdar midam
    function check($mail,$subject,$msg)
    {
    if (date('U') >= $time)
    {
    mail($mail,$subject,$msg);
    }
    }
    while($i=0) //in ye halgheye bi nahayate ke baraye hamishe edame dare
    {
    check(&quot;aghasoroush@gmail.com&quot;,&quot;sala m&quot;,&quot;Lotfan hesabe karbarie khod ra check konid&quot;);
    sleep(60); // in baes mishe ke kamtar be server feshar biad va har daghighe faghat 1 bar code ejra beshe
    }
    ?>


    من این کد رو اجرا کردم و حتی 1 درصد cpu هم نگرفت
    موفق باشید
    ممنون دوست من از توجهت . این کدهایی که از اول نوشته اید زمانی اجرا می شه که یک کاربر حضور داشته باشه و صفحه یکبار لود بشه در غیر این صورت اجرا نمی شه !!! یا اگر کامپیوتر خاموش باشد ؟ دوستی که سوال پرسیدند خواستند به صورت آفلاین این کار انجام بشه ، یعنی اگر کاربری هم وارد سایت نبود این ایمیل در ساعت خواص ارسال بشه. که برای این کار کلاس پی اچ پی مایلر این کار رو برای این دوستمون فراهم می کنه . کافیه یک سرچ چند ثانیه ای در مورد این کلاس بزنید . موفق باشید
    آخرین ویرایش به وسیله رضا قربانی : یک شنبه 29 آبان 1390 در 10:16 صبح

  10. #10
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    سن
    32
    پست
    61

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    نقل قول نوشته شده توسط رضا قربانی مشاهده تاپیک
    ممنون دوست من از توجهت . این کدهایی که از اول نوشته اید زمانی اجرا می شه که یک کاربر حضور داشته باشه و صفحه یکبار لود بشه در غیر این صورت اجرا نمی شه !!! دوستی که سوال پرسیدند خواستند به صورت آفلاین این کار انجام بشه ، یعنی اگر کاربری هم وارد سایت نبود این ایمیل در ساعت خواص ارسال بشه. که برای این کار کلاس پی اچ پی مایلر این کار رو برای این دوستمون فراهم می کنه . کافیه یک سرچ چند ثانیه ای در مورد این کلاس بزنید . موفق باشید
    دوست من مرسی که در حد برداشت خودت از کد میای و نظر میدی ایشالا با یکم تلاش و دادن این جور پستا قوی تر میشی. ایشون خودشون وقتی اینو باز کنن دیگه باز میمونه. نمیدونم بعد از ۸۰۰ تا پست که دادین این پست الان دیگه چیه.
    موفق باشین.

  11. #11
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    ما داریم با زبون خوش و با ملایمت صحبت و راهنمایی می کنیم . نمی دونم چرا چند روزیه که همه با ما دعوا دارن
    تو به همون 800 تا پست کن و باهاش خوش باش .

    این اصلا بهینه نیست دوست من :

    یا با cron job می شه یا با کلاس

    این واسه کرون جاب و ارسال ایمیل: http://www.daniweb.com/web-developme...threads/123389
    اینم سایت رسمی phpmailer که می تونید تمام ورژن ها رو دانلود کنید همراه با آموزش :http://phpmailer.worxware.com/

    و در آخر به قول دوستمون که گفته بودن :
    بخاطر همینه وقتی یه برنامه تحت ویندوز ایرانی نوشته می شه با رم 1 گیگ هم به سختی بالا میاد ، هنگ می کنه. اما ماله خارجی ها خوب کار می کنه... من می گم خوبه کار کنید که شیوه های نوین برنامه نویسی وارد ایران بشه..
    شما هم از اون دسته هایید . یه کم خودت رو بکش بالا. وقتی شما می تونی غذا رو درست بخوری چرا به کسی که درخواست کمک کرده می چرخونی و غذا می دی ،مثل اینه که دستورات sql می تونی با 10 با سلکت زدن و 10 خط کد کارت رو انجام بدی ولی بهینه نیست و جریان با یک سری دستور و 2 خط یه چیز بهینه و کارآمد می نویسی و استاندارد .

    و من فقط دارم کمک می کنم ، قبل اینکه هم پست بزنم ازتون بابت پیگیری تاپیک و جواب دادن تشکر کردم و اصلا قصد توهین به کسی رو ندارم .

    موفق باشید دوست من
    آخرین ویرایش به وسیله رضا قربانی : یک شنبه 29 آبان 1390 در 10:27 صبح

  12. #12
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1390
    محل زندگی
    تهران
    سن
    32
    پست
    61

    نقل قول: ارسال ایمیل در یک تاریخ خاص با php

    دوست من آقای قربانی اگه شما اینجا دارین پست مینویسین براشون من تلفنی با ایشون صحبت کردم و متناسب با معماری کد اینو بهشون گفتم
    بعد از این همه وقت من میدونم کران جاب چیه دوست من. منتها من نخواستم ایشون رودرگیر کنم و خواستم کارشون راه بیفته تازه کلی هم بهشون ایده دادم . من ۷۰ خط کد نوشتم و کلاسم رتبه ی اول شد شما تو سایت پی اچ پی کلاسز بگرد هست پس من بهینه سازی کد رو بلدم. چرا ندونسته قضاوت میکنین که من دارم لقمه رو ... ؟ اشکالی نداره این بحث دیکه تموم شد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •