paint-brush
নাট্যকারের সাথে জিমেইল ইমেলগুলি কীভাবে পড়বেনদ্বারা@bormando
4,512 পড়া
4,512 পড়া

নাট্যকারের সাথে জিমেইল ইমেলগুলি কীভাবে পড়বেন

দ্বারা Dmitrii Bormotov5m2023/12/10
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

স্বয়ংক্রিয় পরীক্ষায় ইমেল পড়া একটি কৌশল যা আপনাকে অনেক প্রকল্পে কীভাবে করতে হবে তা জানতে হবে। এটা করা একটা কঠিন কাজ, কিন্তু অসম্ভব নয়। ডকুমেন্টেশন এবং এর লাইব্রেরিগুলি আসলেই ব্যবহারকারী-বান্ধব নয় (বিশেষ করে, যারা ইমেল পরীক্ষা করে খুব বেশি কাজ করে না)। gmail-getter npm প্যাকেজ আপনাকে একটি Gmail REST API অ্যাক্সেস টোকেন তৈরি করতে, আপনার ইমেলগুলি পেতে এবং ব্রাউজারে রেন্ডার করতে সহায়তা করে৷
featured image - নাট্যকারের সাথে জিমেইল ইমেলগুলি কীভাবে পড়বেন
Dmitrii Bormotov HackerNoon profile picture

সবাইকে অভিবাদন!


স্বয়ংক্রিয় পরীক্ষায় ইমেল পড়া একটি কৌশল যা আপনাকে অনেক প্রকল্পে কীভাবে করতে হবে তা জানতে হবে। কেন এবং কীভাবে এটি মোকাবেলা করতে হবে তা এখানে…

ইহা কেন গুরুত্বপূর্ণ?

ঠিক আছে, যদি সিস্টেম ইমেল পাঠায় - আপনি হয়ত যাচাই করতে চাইতে পারেন যে সেগুলি পাঠানো হচ্ছে এবং বিষয়বস্তু সঠিক, ক্লিকযোগ্য লিঙ্ক সহ।


সুতরাং যখন আপনার এটির প্রয়োজন হয় তখন এইগুলি সাধারণ পরিস্থিতিতে:

  1. নিবন্ধন করুন.

    আপনি একটি অ্যাকাউন্ট তৈরি করার পরে অনেকগুলি প্ল্যাটফর্ম একটি নিশ্চিতকরণ ইমেল পাঠায় এবং আপনাকে ইমেল থেকে একটি নিশ্চিতকরণ লিঙ্কে ক্লিক করতে হবে।


  2. চালান।

    যদি আপনার অ্যাপ কোনো অর্থপ্রদান করে - তারা সাধারণত ইমেলের মাধ্যমে একটি চেক বা চালান পাঠায়, তাই আপনি তাদের বিষয়বস্তুও সঠিক কিনা তা দেখতে চাইতে পারেন।


  3. ফলাফল.

    মেডিকেল পরীক্ষার ফলাফলের মত। আমার অভিজ্ঞতায় - কিছু হাসপাতাল একবার পরীক্ষার ফলাফলের সাথে একটি ইমেল পাঠায় (বা কমপক্ষে একটি ব্যক্তিগত পৃষ্ঠার লিঙ্ক যেখানে আপনি প্রতিবেদনটি দেখতে পারেন)।



অবশ্যই, এটি সম্পূর্ণ তালিকা নয় - এইগুলি কেবলমাত্র আমার কর্মজীবনে আমি সবচেয়ে বেশি দেখা করেছি।


এই পরিস্থিতিগুলি যাচাই করতে ব্যর্থ হলে ব্যবহারকারীরা ইমেল না পেতে বা ইমেলে ভুল তথ্য পেতে পারে। একটি প্রকল্পে, এটি আমাদেরকে একটি মেয়াদ শেষ হওয়া SendGrind টোকেন খুঁজে পেতে সাহায্য করেছে।

পরীক্ষায় ইমেল পড়ার জটিলতাগুলি কী কী?

ইমেল পড়া একটি কঠিন কাজ, তবে অসম্ভব নয়।


প্রারম্ভিক ইমেল ক্লায়েন্টরা সার্ভার থেকে ইমেলগুলি আনতে POP3 ব্যবহার করত, কিন্তু একটি ছোট সমস্যা আছে - এটি ডাউনলোড হয়ে গেলে সার্ভার থেকে ইমেলগুলি মুছে দেয়৷


পরে, IMAP প্রোটোকল এসেছিল - এটি আপনাকে সার্ভার থেকে ইমেলগুলি পড়ার অনুমতি দেয়।


সমস্যা হল - কিছু পরিষেবা এই প্রোটোকল নিষিদ্ধ করে বা আপনি আপনার পরিচয় নিশ্চিত করুন যখন আপনি প্রথমবার সংযোগ করেন (যেমন আপনি যখন একটি স্বয়ংক্রিয় পরীক্ষা পুনরায় চালু করেন)।


অন্যদিকে, Gmail এর মতো কিছু পরিষেবা আপনার ইমেলগুলিকে ম্যানিপুলেট করার জন্য একটি REST API প্রদান করে, কিন্তু আরেকটি সমস্যা রয়েছে - ডকুমেন্টেশন এবং এর লাইব্রেরিগুলি আসলেই ব্যবহারকারী-বান্ধব নয় (বিশেষ করে যারা ইমেল পরীক্ষার সাথে খুব বেশি কাজ করেন না তাদের জন্য)।


এখানেই gmail-getter আসে - একটি npm লাইব্রেরি যা আপনাকে ইমেলগুলি পড়তে এবং এমনকি যদি আপনি Playwright এর মতো ব্রাউজার অটোমেশন সরঞ্জামগুলি ব্যবহার করেন তবে সেগুলি আপনার ব্রাউজারে খুলতে দেয়৷

জিমেইল-গেটার দিয়ে জিমেইল ইমেল পড়া

প্রথম জিনিস প্রথমে - আপনাকে আপনার প্রকল্পে প্যাকেজটি ইনস্টল করতে হবে:

 npm install gmail-getter

একটি Google ক্লাউড কনসোল প্রকল্প তৈরি করুন এবং শংসাপত্রগুলি পান৷

Gmail API এ লগ ইন করতে, আপনাকে শংসাপত্রগুলি পেতে হবে: একটি ক্লায়েন্ট আইডি , একটি ক্লায়েন্ট সিক্রেট , এবং একটি রিফ্রেশ টোকেন ৷ এই শংসাপত্রগুলি আপনাকে একটি অ্যাক্সেস টোকেন পেতে দেয়, যা আরও অনুরোধের জন্য প্রয়োজন (যেমন ইমেলের তালিকা বা একটি একক ইমেল পাওয়া ইত্যাদি)।


যেতে পদক্ষেপ:

  1. Google ক্লাউড কনসোলে একটি প্রকল্প তৈরি করুন।


  2. API এবং পরিষেবা বিভাগে OAuth শংসাপত্র তৈরি করুন ( স্বয়ংক্রিয় পরীক্ষার জন্য আপনার প্রয়োজন হলে সেখানে ডেস্কটপ অ্যাপ নির্বাচন করুন ) এবং এটি ডাউনলোড করুন।


  3. Gmail API সক্রিয় করুন।


  4. একটি রিফ্রেশ টোকেন পান।


একটি রিফ্রেশ টোকেন পেতে - কেবল একটি প্রকল্প রুটে একটি কমান্ড চালান:

 npx gmail-getter get-refresh-token


(বা অন্য কোথাও যদি আপনি প্যাকেজটি বিশ্বব্যাপী ইনস্টল করে থাকেন)

 get-refresh-token


আপনাকে অবশ্যই credentials.json ফাইলটি এমন জায়গায় রাখতে হবে যেখানে আপনি কমান্ডটি কার্যকর করবেন।


⚠️ শংসাপত্র ফাইলের নাম কেস-সংবেদনশীল ⚠️

অ্যাক্সেস টোকেন পান

কনফিগারেশন হয়ে গেলে, আপনার স্বয়ংক্রিয় পরীক্ষায় আপনাকে অবশ্যই একটি অ্যাক্সেস টোকেন পেতে হবে। আমি বলব যে এটির জন্য সর্বোত্তম স্থান একটি বিশ্বব্যাপী সেটআপ (একটি ফাংশন যা পরীক্ষা চালানো শুরু হওয়ার আগে কার্যকর করে)।


সুতরাং, এটি এরকম কিছু হবে:


 import {getToken} from 'gmail-getter' export default async function globalSetup() { process.env['ACCESS_TOKEN'] = await getToken( process.env.CLIENT_ID!, process.env.CLIENT_SECRET!, process.env.REFRESH_TOKEN! ) }


উপরের উদাহরণটি পরিবেশের ভেরিয়েবল ব্যবহার করে, যার জন্য আপনাকে অবশ্যই dotenv প্যাকেজটিও ইনস্টল করতে হবে।


কিন্তু, যদি আপনি জিনিসগুলি সহজ রাখতে চান - আপনি এই স্নিপেটটি ব্যবহার করতে পারেন যেখানে আপনার টোকেনটি অ্যাক্সেসযোগ্য হতে হবে:


 const accessToken = await getToken( '<put-your-client-id-here>', '<put-your-client-secret-here>', '<put-your-refresh-token-here>' )

ইমেইল পান

এই মুহূর্তে, আপনার প্রয়োজনীয় ইমেল খুঁজে পেতে Gmail এর REST API তার নিজস্ব ক্যোয়ারী ভাষা ব্যবহার করে:


 const email = await checkInbox(accessToken!, 15000, 1500, 'from:squier7 subject:Test!')


উপরের কমান্ডটি আপনাকে একটি ইমেল অবজেক্ট ফেরত দেয়, তবে আপনাকে এখনও এর বিষয়বস্তু বা একটি লিঙ্ক পেতে হবে। from:squier7 subject:Test! উপরের লিঙ্ক থেকে সিনট্যাক্স অনুসরণ করে আপনার নিজের প্রশ্নের জন্য ☝️


আপনি একটি regex ব্যবহার করে একটি লিঙ্ক পার্স করতে পারেন:


 const link = parseLinkFromHtml(email!, /(https:\/\/)(\S*)(gmail-getter)([\w\/\?\=\-]*)/im)


/(https:\/\/)(\S*)(gmail-getter)([\w\/\?\=\-]*)/im আপনার নিজের রেগুলার এক্সপ্রেশন দিয়ে প্রতিস্থাপন করুন ☝️


অথবা ইমেলের সম্পূর্ণ HTML বিষয়বস্তু পান এবং আপনার ব্রাউজারে রেন্ডার করুন:


 import {getToken, parseHtml} from 'gmail-getter' import {test} from '@playwright/test' test('Render an email', async ({page}) => { const accessToken = await getToken( '<put-your-client-id-here>', '<put-your-client-secret-here>', '<put-your-refresh-token-here>' ) const email = await checkInbox(accessToken!, 15000, 1500, 'from:squier7 subject:Test!') // get an email const html = parseHtml(email!) // parse HTML from the email await page.setContent(html) // render the email in the browser })

সামগ্রিকভাবে

আমি মনে করি এটি এখন বেশ স্পষ্ট যে স্বয়ংক্রিয় পরীক্ষায় ইমেলগুলির সাথে কাজ করা কঠিন হতে পারে! কিন্তু এই কৌশলগুলি জানা জিনিসগুলিকে অনেক সহজ করে তোলে।


আপনি এখনও কিছু অন্য ইমেল পরিষেবার মাধ্যমে যেতে পারেন বা IMAP ব্যবহার করে দেখতে পারেন, কিন্তু আমি আপনাকে গ্যারান্টি দিচ্ছি - এটি এই নির্দেশিকায় যতটা সহজ হবে ততটা সহজ হবে না, যেমন আপনাকে আপনার নিজস্ব একজন সাহায্যকারী তৈরি করতে হবে, যেমন gmail-getter প্রদান করা হয়েছে এখানে.


আপনি GitHubনাট্যকারের উদাহরণ খুঁজে পেতে পারেন। সাইপ্রেসের উদাহরণও