Yandex کے افعال میل بھیجتے ہیں۔

Yandex کے افعال میل بھیجتے ہیں۔

آج ہم نام نہاد بنائیں گے۔ یانڈیکس فنکشن (سرکاری نام Yandex کلاؤڈ فنکشنز)، جو میلنگ سروس کے ساتھ colluded میل Sendgrid پرامن طریقے سے سونے والے صارفین کو "صابن" بھیجیں گے (صرف مذاق کر رہے ہیں - میں جانتا ہوں کہ ہم سب سپیم کے خلاف ہیں)۔

میں روایتی سرورز کا مخالف (لیکن جنون کے بغیر) بھی ہوں اور نام نہاد کا حامی بھی ہوں۔ سرورless (سرور کے بغیر) حل، کیونکہ مجھے سرورز کا انتظام کرنا پسند نہیں ہے (اور میں واقعی میں نہیں جانتا ہوں کہ) اور اس سے بھی بڑھ کر، اس وقت کی ادائیگی کریں جب وہ لوڈ نہ ہوں۔ ایک اور چیز فنکشنز ہے۔ کوئی میرے بغیر ان کی خدمت کرتا ہے، اور میں صرف کالوں کے لیے ادائیگی کرتا ہوں۔ اکتوبر 2019 کے آغاز میں، Yandex نے اپنی پیش کی۔ Yandex کلاؤڈ فنکشنز - روسی فیڈریشن میں پہلا لگتا ہے۔ سرورless. اور خاص طور پر اچھی بات یہ ہے کہ ایلس کی مہارتوں کے لیے وہ عام طور پر آزاد ہیں، اس لیے وہ تب سے میرے پردیی وژن میں ہیں۔ لیکن آئیے پہلے ہی شروع کرتے ہیں۔

آئیے اس منظر نامے کا تصور کریں۔ آپ کی درخواست (مثال کے طور پر، ایلس کی مہارت یاد رکھیں اور بھول جائیں۔ جو، ویسے بھی کام کرتا ہے۔ Yandex کے افعال) صارف کو ڈیجیٹل مصنوعات خریدنے کی پیشکش کرتا ہے، مثال کے طور پر، اضافی اختیارات، اور صارف ادائیگی کرتا ہے۔ کچھ قسم کا ادائیگی کا نظام (مبہم طور پر اسی طرح Yandex.Money) ادائیگی پر کارروائی کرتا ہے اور اسے آپ کے فراہم کردہ پتے پر بھیجتا ہے (اور ہمارے پاس کال کرنے کا ایک لنک ہوگا۔ Yandex کے افعال) HTTP-ایک درخواست جس میں ادائیگی کی تفصیلات شامل ہوں، جیسے رقم، پورا نام، فون نمبر اور ادا کنندہ کا ای میل۔ ہم اس ڈیٹا کو کسی طرح سے پروسیس کرنا چاہتے ہیں، مثال کے طور پر: رقم چیک کریں، ڈیٹا بیس میں مناسب اندراج کریں، صارفین کو بھیجیں۔ SMS и دوستوں کوارسال کریں ادائیگی کی وصولی کی تصدیق اور مزید ہدایات کے ساتھ۔ تو اپنے آپ کو مائیکرو سروس.

کے بارے میں کیسے سے Yandex کے افعال ڈیٹا بیس میں اندراجات بنائیں کلاؤڈ فائر اسٹور ہم نے اسے پہلے ہی ٹیوٹوریل میں دیکھا ہے۔ ایلس کو سب کچھ یاد ہے۔ (اور مستقبل میں، میرے خیال میں، ہم ایک اور ڈیٹا بیس کے لیے ایک مثال پر غور کریں گے - Yandex ڈیٹا بیس)۔ صارفین کو بھیجنے کے طریقے کے بارے میں SMS اور ہماری درخواست کو اس کے ساتھ مربوط کریں۔ Yandex.Money - ہم اسے مستقبل قریب میں حل کریں گے۔ اب صرف خطوط بھیجنے کا معاملہ کرتے ہیں۔

1. SendGrid میں ایک اکاؤنٹ بنائیں

نوٹSendGrid صرف میری پسند ہے، جسے میں نے کئی وجوہات کی بنا پر بنایا، سب سے اہم یہ ہے کہ ان کے پاس Node.js کے لیے ایک ریڈی میڈ SDK ہے۔ آپ کسی بھی دوسری میلنگ سروس کا انتخاب کر سکتے ہیں۔

آئیے آگے بڑھیں۔ اکاؤنٹ رجسٹریشن کے صفحے پر اور وہاں رجسٹریشن فارم پُر کریں۔ پھر ہم جاتے ہیں۔ ڈیش بورڈ، نیویگیشن پینل میں منتخب کریں۔ ای میل API -> انٹیگریشن گائیڈ، اور مین پینل پر - ویب API нажимаем میں سے انتخاب کریں. سب کچھ تصویر میں جیسا ہے:

Yandex کے افعال میل بھیجتے ہیں۔

اگلے مرحلے میں ہم منتخب کرتے ہیں۔ Node.js:

Yandex کے افعال میل بھیجتے ہیں۔

اگلا ہم اپنے لئے کے ساتھ آتے ہیں APIکلیدی نام (صرف کلیدوں کی فہرست میں کنسول میں دکھایا جائے گا، اور اس کا ہمارے مستقبل کے کوڈ سے کوئی تعلق نہیں ہے؛ میں ابھی ایک ناقابل تلافی کے ساتھ آیا ہوں demo-api-key) اور بٹن دبائیں۔ کلید بنائیں:

Yandex کے افعال میل بھیجتے ہیں۔

کلید تیار کی جائے گی، ہم اسے کاپی کریں گے اور اسے مکمل اعتماد میں رکھیں گے۔ اور ہمارے پاس ایک بٹن کے ساتھ ایک اسکرین ہوگی۔ انضمام کی تصدیق کریں۔جیسا کہ نیچے دی گئی تصویر میں ہے، لیکن ہم ابھی اس پر کلک نہیں کریں گے، لیکن آئیے کوڈ لکھنے کی طرف بڑھتے ہیں:

Yandex کے افعال میل بھیجتے ہیں۔

2. تحریری کوڈ

لیکن کوڈ خود، جیسا کہ آپ دیکھ سکتے ہیں، مضحکہ خیز طور پر چھوٹا ہے - 22 لائنیں!

Yandex کے افعال میل بھیجتے ہیں۔

لائن میں #8 میرا ای میل ہارڈ کوڈ شدہ ہے (اور اس وجہ سے شرم سے پوشیدہ ہے) - براہ کرم اپنا اشارہ کریں۔ حقیقی زندگی میں، ہم تمام ڈیٹا حاصل کریں گے (بشمول ای میل) آبجیکٹ سے تقریب. مثال کے طور پر، اگر طریقہ POST ایک چیز ہمارے فنکشن میں بھیجی جاتی ہے۔ صارف میدان کے ساتھ (پراپرٹی) ای میل، اس فیلڈ کی قدر اس طرح حاصل کی جاسکتی ہے:

const { user } = event;
const email = user.email;

اور اگر ای میل ایڈریس کو طریقہ استعمال کرتے ہوئے فنکشن میں منتقل کیا جاتا ہے۔ حاصل کریںمثال کے طور پر: https://functions.yandexcloud.net/123abc?[email protected]
پیرامیٹر کی قدر ای میل آپ اسے اس طرح حاصل کر سکتے ہیں:

const email = event.queryStringParameters.email;

ایک نظر ڈالنے کے لیے کہ کسی چیز میں بالکل کیا ہے۔ تقریب، آپ سب سے آسان بنا سکتے ہیں۔ یانڈیکس فنکشن اور اسے سوالات کے ساتھ موڑ دیں:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

سرکاری دستاویزات میں اس پر مزید تفصیل سے (لیکن کم واضح طور پر) بحث کی گئی ہے۔ یہاں.

لہذا، ایک پروجیکٹ ڈائرکٹری بنائیں (مثال کے طور پر، میلر)، اس پر جائیں، پروجیکٹ شروع کریں، انحصار انسٹال کریں:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

یہاں صرف پیکیج کی ضرورت ہے۔ @sendgrid/mail. پلاسٹک بیگ ای میل کی توثیق کرنے والا درستگی کے لیے ای میل ایڈریس چیک کرتا ہے (میں نے ابھی اندازہ کیسے نہیں لگایا؟)، لیکن اگر ہمیں اس کا یقین ہے (یہ ہمارے بغیر پہلے ہی کافی عرصے سے چیک کیا جا چکا ہے)، تو ہمیں اسے انسٹال کرنے کی ضرورت نہیں ہے (اور، یقینا، ہمیں اسے کوڈ میں چیک کرنے کی ضرورت نہیں ہے)۔ پلاسٹک بیگ dotenv فائل سے ریکارڈ پڑھنے کے لیے ڈیزائن کیا گیا ہے۔ .env رن ٹائم متغیرات کے طور پر۔ لیکن میں Yandex کے افعال ان متغیرات کو براہ راست رن ٹائم ماحول میں رکھنا ممکن ہے۔ کیسے؟ - میں اسے نیچے دکھاؤں گا۔ لہذا پیکج dotenv آپ اسے اور فائل بھی انسٹال نہیں کر سکتے .env - نہ بنائیں، اور ایک ہی وقت میں کوڈ فائل میں ہے index.js مت بدلو. لیکن یہاں ہم نے یہ پیکیج انسٹال کیا ہے، اس لیے ہم فائلیں بناتے ہیں۔ index.js и .env:

touch index.js
touch .env

فائل میں index.js اوپر اسکرین شاٹ میں دکھائے گئے کوڈ کی 22 لائنیں لکھیں (صرف لائن میں #8 اپنا ای میل تبدیل کریں) اور فائل میں .env - (بغیر کسی اقتباس یا اوقاف کے) جوڑے کی وضاحت کریں - کلیدی نام/قدر APIجو ہمیں حال ہی میں کنسول میں موصول ہوا ہے۔ میل Sendgrid:
SENDGRID_API_KEY=آپ کی-بہت-خفیہ-sendgrid-api-key

اور اگر آپ کم کام چاہتے ہیں تو ریپوزٹری کو کلون کریں اور پیکجز انسٹال کریں:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

فائل میں index.js، لائن میں #8 ای میل تبدیل کریں؛ روٹ ڈائرکٹری میں ایک فائل بنائیں .env، اور اس میں کلید کا نام / قدر کی نشاندہی کریں۔ APIجیسا کہ اوپر دکھایا گیا ہے۔

3. تعینات کریں۔

کے بارے میں کم و بیش واضح اور تفصیل سے Yandex.Cloud اور اسے وہاں کیسے رکھا جائے؟ Yandex کے افعال میرے مضمون میں بیان کیا گیا ہے۔ Bitrix کی سرزمین میں ایلس - میں ان لوگوں کو بھیجتا ہوں جو جاہل ہیں اس ملک میں، اور باقی سب کے لیے (اور جو واپس آئے ہیں) - پھر ایک چھوٹی سی مزاحیہ کتاب (یعنی تصویروں اور متن کا ایک سلسلہ)۔

ہم تخلیق کرتے ہیں۔ زپآرکائیو (آئیے اسے کہتے ہیں، مثال کے طور پر، mailer.zip)، جس میں ہم ڈائریکٹری کو شامل کرتے ہیں۔ نوڈ_موڈولز اور فائلیں env, index.js - ہمارے پروجیکٹ کیٹلاگ سے ہر چیز:

Yandex کے افعال میل بھیجتے ہیں۔

ہم نام کے ساتھ ایک فنکشن بناتے ہیں... صحیح طریقے سے - میلر، بائیں نیویگیشن مینو میں ہم داخل ہوتے ہیں۔ ایڈیٹر، مطلوبہ فیلڈز کو پُر کریں، اور ٹیب پر سوئچ کریں۔ زپ آرکائیو ہمارا محفوظ شدہ دستاویزات ڈاؤن لوڈ کریں۔ mailer.zip:

Yandex کے افعال میل بھیجتے ہیں۔

اور یہاں ڈاؤن لوڈ کرنے کا پہلے ذکر کردہ آپشن ہے۔ API کلید پروجیکٹ میں فائل بنانے کے بجائے براہ راست یہاں .env، اور پیکیج کو انسٹال نہ کریں۔ dotenv. لیکن ہم یہ سب کر چکے ہیں، اس لیے میں اسے صرف معلومات کے لیے دکھا رہا ہوں۔ یعنی نقل کرنے کی ضرورت نہیں ہے!

Yandex کے افعال میل بھیجتے ہیں۔

اب اوپری دائیں کونے میں بٹن پر کلک کریں۔ ورژن بنائیں، اور چند سیکنڈ انتظار کریں۔ جب سب کچھ تیار ہو جائے گا، ہم خود بخود سیکشن میں جائیں گے۔ کا جائزہ لیں. وہاں ہم آپشن کو فعال کریں گے۔ عوامی تقریبتاکہ آپ بیرونی دنیا سے اس کے ساتھ بات چیت کر سکیں۔

Yandex کے افعال میل بھیجتے ہیں۔

آپ نوشتہ کے مخالف نیلے رنگ کا لنک دیکھتے ہیں۔ کال کرنے کا لنک? اس پر کلک کریں۔ ایک خالی براؤزر ونڈو کھل جائے گی... لیکن انتظار کریں - مجھے ایک ای میل موصول ہوا:

Yandex کے افعال میل بھیجتے ہیں۔

اب آپ کنسول پر واپس جا سکتے ہیں۔ میل Sendgrid، اور بٹن دبائیں۔ انضمام کی تصدیق کریں۔. سسٹم اپنے چینلز کے ذریعے ہر چیز کی جانچ کرے گا، اور اس کے نتیجے میں اسے اس طرح کی سکرین واپس کرنی چاہیے:

Yandex کے افعال میل بھیجتے ہیں۔

بس، لوگ (اور لڑکیاں، یقینا) - سب کچھ واقعی بہت آسان اور خوبصورت ہے! مزید مضامین ہوں گے۔ اگر کوئی اس طرح کی کوئی چیز پڑھنے میں دلچسپی رکھتا ہے تو سبسکرائب کریں تاکہ آپ اس سے محروم نہ ہوں۔

4. عطیات

Yandex کے افعال میل بھیجتے ہیں۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں