সবাইকে অভিবাদন! স্বয়ংক্রিয় পরীক্ষায় ইমেল পড়া একটি কৌশল যা আপনাকে অনেক প্রকল্পে কীভাবে করতে হবে তা জানতে হবে। কেন এবং কীভাবে এটি মোকাবেলা করতে হবে তা এখানে… ইহা কেন গুরুত্বপূর্ণ? ঠিক আছে, যদি সিস্টেম ইমেল পাঠায় - আপনি হয়ত যাচাই করতে চাইতে পারেন যে সেগুলি পাঠানো হচ্ছে এবং বিষয়বস্তু সঠিক, ক্লিকযোগ্য লিঙ্ক সহ। সুতরাং যখন আপনার এটির প্রয়োজন হয় তখন এইগুলি সাধারণ পরিস্থিতিতে: নিবন্ধন করুন. আপনি একটি অ্যাকাউন্ট তৈরি করার পরে অনেকগুলি প্ল্যাটফর্ম একটি নিশ্চিতকরণ ইমেল পাঠায় এবং আপনাকে ইমেল থেকে একটি নিশ্চিতকরণ লিঙ্কে ক্লিক করতে হবে। চালান। যদি আপনার অ্যাপ কোনো অর্থপ্রদান করে - তারা সাধারণত ইমেলের মাধ্যমে একটি চেক বা চালান পাঠায়, তাই আপনি তাদের বিষয়বস্তুও সঠিক কিনা তা দেখতে চাইতে পারেন। ফলাফল. মেডিকেল পরীক্ষার ফলাফলের মত। আমার অভিজ্ঞতায় - কিছু হাসপাতাল একবার পরীক্ষার ফলাফলের সাথে একটি ইমেল পাঠায় (বা কমপক্ষে একটি ব্যক্তিগত পৃষ্ঠার লিঙ্ক যেখানে আপনি প্রতিবেদনটি দেখতে পারেন)। … অবশ্যই, এটি সম্পূর্ণ তালিকা নয় - এইগুলি কেবলমাত্র আমার কর্মজীবনে আমি সবচেয়ে বেশি দেখা করেছি। এই পরিস্থিতিগুলি যাচাই করতে ব্যর্থ হলে ব্যবহারকারীরা ইমেল না পেতে বা ইমেলে ভুল তথ্য পেতে পারে। একটি প্রকল্পে, এটি আমাদেরকে একটি মেয়াদ শেষ হওয়া টোকেন খুঁজে পেতে সাহায্য করেছে। SendGrind পরীক্ষায় ইমেল পড়ার জটিলতাগুলি কী কী? ইমেল পড়া একটি কঠিন কাজ, তবে অসম্ভব নয়। প্রারম্ভিক ইমেল ক্লায়েন্টরা সার্ভার থেকে ইমেলগুলি আনতে ব্যবহার করত, কিন্তু একটি ছোট সমস্যা আছে - এটি ডাউনলোড হয়ে গেলে সার্ভার থেকে ইমেলগুলি মুছে দেয়৷ POP3 পরে, প্রোটোকল এসেছিল - এটি আপনাকে সার্ভার থেকে ইমেলগুলি পড়ার অনুমতি দেয়। IMAP সমস্যা হল - বা যখন আপনি প্রথমবার সংযোগ করেন (যেমন আপনি যখন একটি স্বয়ংক্রিয় পরীক্ষা পুনরায় চালু করেন)। কিছু পরিষেবা এই প্রোটোকল নিষিদ্ধ করে আপনি আপনার পরিচয় নিশ্চিত করুন অন্যদিকে, এর মতো কিছু পরিষেবা আপনার ইমেলগুলিকে ম্যানিপুলেট করার জন্য একটি প্রদান করে, কিন্তু আরেকটি সমস্যা রয়েছে - ডকুমেন্টেশন এবং এর লাইব্রেরিগুলি আসলেই ব্যবহারকারী-বান্ধব নয় (বিশেষ করে যারা ইমেল পরীক্ষার সাথে খুব বেশি কাজ করেন না তাদের জন্য)। Gmail REST API এখানেই আসে - একটি লাইব্রেরি যা আপনাকে ইমেলগুলি পড়তে এবং এমনকি যদি আপনি এর মতো ব্রাউজার অটোমেশন সরঞ্জামগুলি ব্যবহার করেন তবে সেগুলি আপনার ব্রাউজারে খুলতে দেয়৷ gmail-getter npm Playwright জিমেইল-গেটার দিয়ে জিমেইল ইমেল পড়া প্রথম জিনিস প্রথমে - আপনাকে আপনার প্রকল্পে প্যাকেজটি ইনস্টল করতে হবে: npm install gmail-getter একটি Google ক্লাউড কনসোল প্রকল্প তৈরি করুন এবং শংসাপত্রগুলি পান৷ আপনাকে শংসাপত্রগুলি পেতে হবে: একটি , একটি , এবং একটি ৷ এই শংসাপত্রগুলি আপনাকে একটি অ্যাক্সেস টোকেন পেতে দেয়, যা আরও অনুরোধের জন্য প্রয়োজন (যেমন ইমেলের তালিকা বা একটি একক ইমেল পাওয়া ইত্যাদি)। Gmail API এ লগ ইন করতে, ক্লায়েন্ট আইডি ক্লায়েন্ট সিক্রেট রিফ্রেশ টোকেন যেতে পদক্ষেপ: একটি প্রকল্প তৈরি করুন। Google ক্লাউড কনসোলে বিভাগে তৈরি করুন ( ) এবং এটি ডাউনলোড করুন। API এবং পরিষেবা OAuth শংসাপত্র স্বয়ংক্রিয় পরীক্ষার জন্য আপনার প্রয়োজন হলে সেখানে অ্যাপ নির্বাচন করুন ডেস্কটপ সক্রিয় করুন। Gmail API একটি রিফ্রেশ টোকেন পান। একটি রিফ্রেশ টোকেন পেতে - কেবল একটি প্রকল্প রুটে একটি কমান্ড চালান: 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 নাট্যকারের উদাহরণ সাইপ্রেসের উদাহরণও