PDA

View Full Version : حرفه ای: ارسال پیامک به صورت خودکار



bftarane
دوشنبه 19 خرداد 1393, 21:39 عصر
سلام.
برای ارسال پیامک به صورت خودکار (مثلاً روز تولد افراد تبریک تولد براشون اس ام اس بشه) چه گروهی و چه تک تک، روند کار به چه شکل هست و به چه امکاناتی نیاز داریم؟
آیا با وب سرویس کار راه می افته یا به GSM مودم نیاز هست؟
ممنون.

مرتضی تقدمی
دوشنبه 19 خرداد 1393, 23:32 عصر
سلام

می تونید از سرویس های کران جاب استفاده کنید.

موفق باشید

alireza_s_84
دوشنبه 19 خرداد 1393, 23:52 عصر
سلام.
برای ارسال پیامک به صورت خودکار (مثلاً روز تولد افراد تبریک تولد براشون اس ام اس بشه) چه گروهی و چه تک تک، روند کار به چه شکل هست و به چه امکاناتی نیاز داریم؟
آیا با وب سرویس کار راه می افته یا به GSM مودم نیاز هست؟
ممنون.
ابتدای امر شما نیاز به یک وب سرویس برای اینکار دارین که از طریق اون SMSهاتون رو ارسال کنید. معمولا سرویس دهنده های زیادی هستن که پنل ارسال پیامک دارن و تقریبا همه ی اونها همچین امکاناتی رو فراهم میکنن. برای نمونه من از URL زیر برای ارسال پیامک از طریق سامانه خودم استفاده میکنم:

Http://www.***.com/APISend.aspx?Username=$UserName&Password=$password&From=$FromNumber&To=$ToNumber&Text=$Text
برای ایجاد درخواست به همچین URLایی هم میتونید از شئی WebRequest استفاده کنید. نمونه کد برای URL با به این شکل هست:
string URI = "http://www.***.com/APISend.aspx"; string myParameters = "Username=$UserName&Password=$password&From=$FromNumber&To=$ToNumber&Text=$Text";


using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
}

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

private static CacheItemRemovedCallback OnCacheRemove = null;


protected void Application_Start(object sender, EventArgs e)
{
AddTask("DoStuff", 86400);
}




private void AddTask(string name, int seconds)
{
OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved);
HttpRuntime.Cache.Insert(name, seconds, null,
DateTime.Now.AddSeconds(seconds), Cache.NoSlidingExpiration,
CacheItemPriority.NotRemovable, OnCacheRemove);
}




public void CacheItemRemoved(string k, object v, CacheItemRemovedReason r)
{
// do stuff here if it matches our taskname, like WebRequest
// re-add our task so it recurs
AddTask(k, Convert.ToInt32(v));
}

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

bftarane
سه شنبه 20 خرداد 1393, 13:16 عصر
ممنون.
فعلاً امکان تست ندارم.
در صورتی که تست کردم و موفقیت آمیز بود اینجا نتیجه رو اعلام می کنم.