ارسال sms از طریق وب سرویس در Asp.net Core
سلام دوستان قصد دارم در بخشی از سایتم که با استفاده از Asp.net Core برای کاربران Sms ارسال کنم. لطفا راهنمایی بفرمایید ارسال sms از طریق وب سرویس در Asp.net Core به چه صورتی هست و چه کاری رو باید انجام بدم ؟
پاسخ هوش مصنوعی
برای ارسال SMS از طریق وب سرویس در ASP.NET Core، شما می توانید از یک API ارسال پیامک استفاده کنید. این مراحل را دنبال کنید تا SMS را ارسال کنید:
1. **انتخاب یک سرویس ارسال SMS:** یکی از سرویس های محبوب شامل Twilio، Nexmo یا یک وب سرویس محلی مانند پیامکی اقدام است.
2. **ثبت نام و دریافت API Key:** پس از انتخاب سرویس، در آن ثبت نام کرده و API Key یا Token دریافتی را ذخیره کنید.
3. **نصب پکیج های لازم:** برای ارتباط با API، ممکن است بخواهید بسته NuGet مناسب را نصب کنید. به عنوان مثال، اگر از Twilio استفاده می کنید:
dotnet add package Twilio
4. **پیکربندی پروژه:** به فایل appsettings.json بروید و اطلاعات مربوط به سرویس SMS خود را اضافه کنید:
{
"SmsSettings": {
"AccountSid": "YOUR_ACCOUNT_SID",
"AuthToken": "YOUR_AUTH_TOKEN",
"FromNumber": "YOUR_FROM_NUMBER"
}
}
5. **ایجاد یک سرویس SMS:** یک کلاس خدمات برای ارسال SMS ایجاد کنید:
using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Microsoft.Extensions.Options;
public class SmsService
{
private readonly SmsSettings _smsSettings;
public SmsService(IOptions smsSettings)
{
_smsSettings = smsSettings.Value;
TwilioClient.Init(_smsSettings.AccountSid, _smsSettings.AuthToken);
}
public void SendSms(string to, string message)
{
var messageOptions = new CreateMessageOptions(new PhoneNumber(to))
{
From = new PhoneNumber(_smsSettings.FromNumber),
Body = message
};
var messageResource = MessageResource.Create(messageOptions);
}
}
public class SmsSettings
{
public string AccountSid { get; set; }
public string AuthToken { get; set; }
public string FromNumber { get; set; }
}
6. **استفاده از سرویس SMS در کنترلر:** حالا می توانید از این سرویس در کنترلر خود استفاده کنید:
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("[controller]")]
public class SmsController : ControllerBase
{
private readonly SmsService _smsService;
public SmsController(SmsService smsService)
{
_smsService = smsService;
}
[HttpPost("send")]
public IActionResult SendSms([FromBody] SmsRequest request)
{
_smsService.SendSms(request.To, request.Message);
return Ok("SMS sent successfully!");
}
}
public class SmsRequest
{
public string To { get; set; }
public string Message { get; set; }
}
7. **راه اندازی DI:** فراموش نکنید که در Startup.cs سرویس SMS خود را ثبت کنید:
services.Configure(Configuration.GetSection("SmsSettings"));
services.AddSingleton();
با این مراحل، شما می توانید به راحتی از وب سرویس برای ارسال SMS استفاده کنید. حتماً جزییات مستندات API انتخابی خود را بررسی کنید تا از روش های خاص تر و پارامترهای موجود آگاه شوید.
از شرکتی که وب سرویس رو خریداری میکنین، خودشون کدهایی که باید استفاده کنین رو در اختیارتون میذارن.
من خودم از شرکت کاوه نگار وب سرویس رو گرفتم.
1000 تومان هم اعتبار آزمایشی رایگان در اختیارتون میذارن تا سرویس رو تست کنین
ارسال sms از طریق وب سرویس در Asp.net Core

برای ارسال پیامک در Asp.net Core ابتدا نیاز هست که از شرکتهای ارائه دهنده یک پنل پیامکی خریداری کنید. برای این منظور سایتهای زیادی هستن که خدمات پیامکی ارائه میدن. مثل کاوه نگار، sms.ir، و ... که با یک سرچ ساده در گوگل میتونید لیستی از اونها رو پیدا کنید.
ارسال sms از طریق وب سرویس در Asp.net Core به صورت عملی
خب حالا یک مثال عملی از ارسال پیامک در Asp.net Core رو با هم می بینیم. در ابتدا شما باید یک پروژه از نوع وب و با Asp.net Core ایجاد کرده باشید. فرض می کنیم که از سایت کاوه نگار هم یک پنل تهیه کرده اید.
- ابتدا یک پوشه به نام CommonServices در پروژه خود ایجاد کنید. در این پوشه یک کلاس به نام SmsSender و یک Interface به نام ISmsSender ایجاد کنید.

- در کلاس SmsSender برای ارسال پیامک کدهای زیر را بنویسید.
public class SmsSender : ISmsSender
{
public async Task<string> SendSmsAsync(string message, string PhoneNumber)
{
try
{
HttpClient httpClient = new HttpClient();
var httpResponse = await httpClient.GetAsync($"https://api.kavenegar.com/v1/YourCode/sms/send.json?receptor={PhoneNumber}&sender=YourNumber&message={message}");
if (httpResponse.StatusCode == HttpStatusCode.OK)
return "Success";
else
return "Failed";
}
catch
{
return "Error";
}
}
}
در قسمتی از کدهای بالا YourCode باید رشته مخصوص خودتون رو که از سایت دریافت می کنید رو قرار بدید. در بخش YourNumber هم باید شماره خطی که قرار است با آن پیامک ارسال شود و از پنل خود دریافت کرده اید را بنویسید.
- در اینترفیس ISmsSender هم کدهای زیر را بنویسید.
public interface ISmsSender
{
Task<string> SendSmsAsync(string message, string PhoneNumber);
}
- خب در اینجا یک کلاس و یک اینترفیس داریم که تشکیل یک Service را می دهند. بنابراین باید در کلاس startup این سرویس را تعریف و راه اندازی کنیم. در کلاس startup و در متد ConfigureService کد زیر را قرار دهید:
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<ISmsSender, SmsSender>();
services.AddControllersWithViews();
}
- خب در حال حاضر شما به راحتی میتوانید از ارسال پیامک در پروژه خودتون استفاده کنید. کافیه که در هر کنترلی که میخواید پیامک ارسال کنید یک نمونه از Interface رو ایجاد کنید و پیامک خودتون رو ارسال کنید:
public class HomeController : Controller
{
private readonly ISmsSender _smsSender;
public HomeController(ISmsSender smsSender)
{
_smsSender = smsSender;
}
[HttpPost]
public async Task<IActionResult> Register(string message, string PhoneNumber)
{
//
await _smsSender.SendAuthSmsAsync(message, PhoneNumber);
}
}
به این ترتیب شما میتونید عملیات ارسال sms از طریق وب سرویس در Asp.net Core رو به راحتی انجام بدید.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2