Email Spam Tester

Home › ইন্টিগ্রেশন › নির্দেশিকা › Amazon SES

নির্দেশিকা · সংযোগের প্রয়োজন নেই

Amazon SES ইমেল পরীক্ষা

SES-কে আপনি ঠিক যা দেন, সেটিই পাঠায় এবং নিজে থেকে খুব কম কিছু যোগ করে। তাই আপনার অ্যাকাউন্ট sandbox-এর বাইরে থাকলে পরীক্ষা করা সহজ, আর রিপোর্টে পাওয়া বেশিরভাগ সমস্যাই আপনাকে ঠিক করতে হবে।

নির্দেশিকা · Amazon SES

Amazon SES থেকে একটি ইমেল টেস্ট করুন

একটি ঠিকানা, একটি ইমেল, এক ঘণ্টার জন্য বৈধ। কোনো অ্যাকাউন্ট বা API key লাগবে না।

একটি টেস্ট ঠিকানা নিন

ধাপ 1

ডোমেইন প্রমাণীকরণ করুন

Easy DKIM: তিনটি CNAME। SPF-ও অ্যালাইন করতে চাইলে একটি কাস্টম MAIL FROM সাবডোমেইন।

ধাপ 2

একটি টেস্ট ঠিকানায় একটি আসল ইমেল পাঠান

প্রোডাকশন অ্যাক্সেস আছে এমন Region থেকে aws sesv2 send-email ব্যবহার করুন। একটি ঠিকানা, একটি বার্তা, এক ঘণ্টা।

ধাপ 3

রিপোর্ট পড়ুন

SPF amazonses.com-এর জন্য পাস করবে এবং অ্যালাইন না হওয়া হিসেবে দেখাবে, আর DKIM-এর ভিত্তিতে DMARC পাস করবে। আনসাবস্ক্রাইব হেডার আপনাকেই যোগ করতে হবে।

প্রথমে sandbox পরীক্ষা করুন, কারণ এটি নির্ধারণ করে আদৌ এটি কাজ করবে কি না। প্রতিটি Region-এ একটি নতুন SES অ্যাকাউন্ট sandbox-এ শুরু হয়। সেখানে থাকা অবস্থায় SES শুধু যাচাইকৃত ঠিকানা, যাচাইকৃত ডোমেইন এবং নিজস্ব mailbox simulator-এ ইমেল পৌঁছে দেয়। এর পাশাপাশি প্রতি ২৪ ঘণ্টায় ২০০টি এবং প্রতি সেকেন্ডে একটি মেসেজ পাঠানোর সীমা থাকে।

Email Spam Tester-এর ঠিকানা যাচাই করেও আপনি এই সীমা এড়াতে পারবেন না। SES কোনো প্রাপককে যাচাই করতে তাকে একটি লিংকসহ ইমেল পাঠায়। আমাদের ঠিকানাগুলো বন্ধ হওয়ার আগে ঠিক একটি মেসেজ গ্রহণ করে, তাই যাচাইকরণের ইমেলটিই সেটি ব্যবহার করে ফেলবে। ফলে বাস্তবে আপনি যে Region থেকে পাঠান, সেখানে production access প্রয়োজন। AWS এই অনুরোধের প্রাথমিক জবাব ৯৬ ঘণ্টার মধ্যে দেওয়ার প্রতিশ্রুতি দেয়।

যেহেতু sandbox status প্রতিটি Region-এর জন্য আলাদা, তাই eu-west-1-এ production-এ থাকা একটি অ্যাকাউন্ট us-east-1-এ এখনও sandbox-এ থাকতে পারে। একইভাবে, identity-ও প্রতিটি Region-এর জন্য আলাদা এবং প্রতিটির নিজস্ব DKIM record থাকে।

একটি ঠিকানা নিন, একটি বার্তা পাঠান

email-spam-tester.com খুলে সেখানে দেখানো ঠিকানাটি কপি করুন। এর জন্য কোনো অ্যাকাউন্ট বা API কী দরকার হয় না, এবং ঠিকানাটি দেখতে test-, এরপর বিশটি অক্ষর ও শেষে t.email-spam-tester.com-এর মতো। আপনি এক ঘণ্টা সময় এবং একটি বার্তা পাঠানোর সুযোগ পাবেন, তাই ঠিকানাটি নেওয়ার আগে পাঠানোর কমান্ড তৈরি করে রাখুন।

সবচেয়ে ছোট পাঠানোর পদ্ধতি হলো CLI। এটি SES tenants পেজে AWS-এর নিজস্ব উদাহরণ থেকে নেওয়া, শুধু tenant ও configuration-set ফ্ল্যাগ বাদ দেওয়া হয়েছে:

aws sesv2 send-email \
  --from-email-address "sender@yourdomain.com" \
  --destination "ToAddresses=test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com" \
  --content "Simple={Subject={Data='Test Subject',Charset=utf-8},Body={Text={Data='Test email body',Charset=utf-8}}}"

উৎপাদন পরিবেশেও From অবশ্যই একটি যাচাইকৃত identity হতে হবে। শুধু টেক্সটের এমন একটি body দিয়ে authentication ও IP পরীক্ষা করা যায়, কিন্তু content সম্পর্কে প্রায় কিছুই জানা যায় না। বাস্তব ফলাফল পেতে আপনার অ্যাপ্লিকেশন আসলে যে বার্তাটি পাঠায়, সেটিই তার HTML অংশ ও headers-সহ পাঠান। একই code path-ও ব্যবহার করুন, সেটি boto3-এর send_email, কোনো SMTP library বা অন্য কিছু যাই হোক। উৎপাদনের বার্তা পাঠাতে configuration set ব্যবহার করা হলে এখানেও --configuration-set-name যোগ করুন, যাতে পরীক্ষাটি একই settings দিয়ে চলে।

Inbox test একই কমান্ডে যুক্ত করা যায়। Test address-এর পাশে এর provider inboxগুলো ToAddresses-এ এবং এর marker Subject data-তে দিন। এরপর একটি call-এই দুটি report পূরণ হবে। দ্বিতীয় report-এ Gmail, Outlook, Yahoo এবং অন্যান্য provider-এ বার্তাটি কোন folder-এ পৌঁছেছে তা দেখানো হবে। ওই inboxগুলোও যাচাইকৃত নয়, তাই এর জন্যও production access প্রয়োজন।

Console দিয়েও এটি করা যায়। Configuration > Identities খুলুন, identity-তে click করুন এবং Send test email বেছে নিন। নিজের headers-সহ সম্পূর্ণ MIME message paste করতে চাইলে Raw নির্বাচন করুন। AWS console-কে এমন একটি tool হিসেবে বর্ণনা করে, যা সাধারণত শুধু test email-এর জন্য ব্যবহার করা হয়। আর docs-এ test prefix বা message-এর অন্য কোনো পরিবর্তনের কথা বলা নেই। Sandbox-এ Custom recipient field-এ একটি verified address দিতে হয়, ফলে আপনি আবার আগের সমস্যাতেই ফিরে আসবেন।

রিপোর্টে সদ্য তৈরি SES identity যেমন দেখায়

রিপোর্ট থেকে · Authentication

  • SPFপাসসামঞ্জস্যপূর্ণ নয়MAIL FROM আপনার ডোমেইনের নয়, amazonses.com-এর একটি সাবডোমেইন।
  • DKIMপাসসামঞ্জস্যপূর্ণEasy DKIM আপনার ডোমেইনের 2048-বিট কী দিয়ে প্রতিটি মেসেজে স্বাক্ষর করে।
  • DMARCপাসআপনি একটি DMARC রেকর্ড প্রকাশ করার পর aligned DKIM স্বাক্ষরের ভিত্তিতে এটি পাস করে।

একটি ডিফল্ট SES identity: SPF পাস করে, তবে amazonses.com-এর জন্য। একটি কাস্টম MAIL FROM এটিকে আপনার ডোমেইনের সঙ্গে aligned করে।

DKIM। ডোমেইন identity-এর জন্য Easy DKIM ডিফল্ট এবং এটি 2048-বিট কী দিয়ে প্রতিটি মেসেজে স্বাক্ষর করে। সেটআপে token._domainkey.yourdomain.com নামের তিনটি CNAME রেকর্ড থাকে, যেগুলো token.dkim.<region>.amazonses.com-এর দিকে নির্দেশ করে। DKIM পরীক্ষা ব্যর্থ হলে প্রথমে দুটি বিষয় দেখুন: DNS আপডেট হয়েছে কি না (AWS অনুযায়ী এতে সর্বোচ্চ 72 ঘণ্টা লাগতে পারে) এবং আপনার DNS হোস্ট নামের সঙ্গে ডোমেইন যোগ করে token._domainkey.yourdomain.com.yourdomain.com তৈরি করেছে কি না। BYODKIM ব্যবহার করলে এর পরিবর্তে আপনি নিজের selector-এ একটি TXT রেকর্ড প্রকাশ করেন। এই দুটির মধ্যে পরিবর্তন চলাকালে SES কোনো স্বাক্ষর ছাড়াই মেসেজ পাঠাতে পারে, যেটিকে রিপোর্ট অনুপস্থিত DKIM হিসেবে চিহ্নিত করে। DKIM পরীক্ষক-এ token-টি selector হিসেবে ব্যবহার করতে হয়।

SPF এবং রিটার্ন পাথ। ডিফল্টভাবে SES, MAIL FROM হিসেবে amazonses.com-এর একটি সাবডোমেইন ব্যবহার করে। SPF পাস করে, তবে amazonses.com-এর জন্য, তাই রিপোর্টে SPF-কে আপনার From-এর সঙ্গে not aligned হিসেবে দেখানো হয়। DKIM aligned থাকলে এতে খুব কম পয়েন্ট কমে (100-পয়েন্টের স্কেলে 5-এর পরিবর্তে 2 পয়েন্ট), এবং DKIM-এর ভিত্তিতে DMARC তখনও পাস করে। SPF-কেও aligned করতে, ঠিক একটি MX রেকর্ড 10 feedback-smtp.<region>.amazonses.com এবং একটি TXT রেকর্ড v=spf1 include:amazonses.com ~all দিয়ে একটি কাস্টম MAIL FROM সাবডোমেইন সেটআপ করুন। ইমেল গ্রহণ করে এমন কোনো সাবডোমেইন বেছে নেবেন না এবং আপনার DMARC রেকর্ডে aspf=s রাখবেন না, কারণ AWS অনুযায়ী কঠোর SPF policy-তে SES-এর সঙ্গে SPF alignment কাজ করে না।

DMARC। SES আপনার জন্য এটি প্রকাশ করে না। AWS-এর নমুনা হলো v=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.com। এখনো কেউ আপনার DMARC রিপোর্ট না পড়লে, আমি p=none দিয়ে শুরু করে পরে policy কঠোর করার পরামর্শ দেব। DMARC পরীক্ষক আপনার বর্তমান কনফিগারেশন দেখায় এবং DMARC fail-এ সাধারণ সমস্যাগুলো ব্যাখ্যা করা হয়েছে।

উদাহরণের মান। আপনার অ্যাকাউন্ট থেকে আসল মানগুলো কপি করুন।

নামধরনমানকী কাজে লাগেকপি করুন
token._domainkey.yourdomain.comCNAMEtoken.dkim.<region>.amazonses.comEasy DKIM। এমন তিনটি রেকর্ড, প্রতি token-এর জন্য একটি।
mail.yourdomain.comMX10 feedback-smtp.<region>.amazonses.comকাস্টম MAIL FROM। ঠিক একটি MX রেকর্ড, এমন একটি সাবডোমেইনে যা কোনো ইমেল গ্রহণ করে না।
mail.yourdomain.comTXTv=spf1 include:amazonses.com ~allকাস্টম MAIL FROM-এর SPF, যাতে SPF আপনার From-এর সঙ্গে aligned হয়।
_dmarc.yourdomain.comTXTv=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.comDMARC, AWS-এর নমুনা। এখনো কেউ রিপোর্ট না পড়লে p=none দিয়ে শুরু করুন এবং aspf=s বাদ দিন।

List-Unsubscribe। আপনি যখন কোনো contact list এবং topic-এর দিকে নির্দেশ করা ListManagementOptions দিয়ে পাঠান, কেবল তখনই SES List-Unsubscribe এবং List-Unsubscribe-Post যোগ করে। তখনও এটি শুধু একজন প্রাপককে পাঠানো মেসেজে এবং শুধু Easy DKIM-এর সঙ্গে কাজ করে। এছাড়া আপনার নিজের সেট করা unsubscribe header-গুলো SES প্রতিস্থাপন করে। অন্য সব মেসেজ কোনো unsubscribe header ছাড়াই পাঠানো হয়। Newsletter-এর ক্ষেত্রে, আপনি নিজে header-গুলো যোগ না করলে এর ফলে List-Unsubscribe পরীক্ষা এবং one-click পরীক্ষা উভয়ই ব্যর্থ হয়। 2024 সালের মার্চ থেকে v2 API raw MIME ছাড়াই কাস্টম header গ্রহণ করে। AWS-এর one-click ব্লগ পোস্ট থেকে মানিয়ে নেওয়া header দুটি দেখতে এমন:

"Headers": [
  { "Name": "List-Unsubscribe",
    "Value": "<https://yourdomain.com/unsub?address=x&topic=x>, <mailto:unsubscribe@yourdomain.com>" },
  { "Name": "List-Unsubscribe-Post",
    "Value": "List-Unsubscribe=One-Click" }
]

এরপর আপনার endpoint-কে POST পরিচালনা করতে হবে। List header ছাড়া password reset এবং receipt ভিন্ন ধরনের মেসেজ, এগুলোর জন্য রিপোর্ট bulk-sender group-কে skipped হিসেবে চিহ্নিত করে। Header সম্পর্কে আরও জানতে আমাদের List-Unsubscribe পৃষ্ঠা দেখুন।

IP ও ব্লকলিস্ট

নতুন অ্যাকাউন্টগুলো অন্য SES ব্যবহারকারীদের সঙ্গে শেয়ার করা IP থেকে ইমেল পাঠায়। আপনার পাঠানোর পরিমাণ বেশি ও নিয়মিত না হলে AWS এগুলোই ব্যবহার করার পরামর্শ দেয়। রিপোর্টটি পাঠানোর IP-এর জন্য ২১টি ব্লকলিস্টে খোঁজ করে। শেয়ার করা ঠিকানার ক্ষেত্রে কোনো তালিকাভুক্তি পুরো পুলের সঙ্গে সম্পর্কিত। ডেডিকেটেড IP দুই ধরনের: Standard, যা আপনাকে নিজে ওয়ার্ম আপ করতে হয়, অথবা Managed, যেখানে SES ওয়ার্ম-আপ পরিচালনা করে। ডেডিকেটেড IP-এর ক্ষেত্রে তালিকাভুক্তি আপনার নিজের পাঠানো ইমেলের সঙ্গে সম্পর্কিত। Headers ট্যাবে পাওয়া যেকোনো IP সরাসরি ব্লকলিস্ট পরীক্ষকে দিতে পারেন।

AWS আপনার অ্যাকাউন্টও পর্যবেক্ষণ করে। এর প্রয়োগবিধির FAQ অনুযায়ী, আপনাকে এমন বাস্তব ঠিকানা দিয়ে পরীক্ষা করতে হবে যেগুলো ইমেল গ্রহণ করতে পারে, অথবা সিমুলেটর ব্যবহার করতে হবে, যাতে বানানো প্রাপকের কারণে বাউন্সের হার না বাড়ে। বাউন্সের হার ৫% বা অভিযোগের হার ০.১% হলে AWS অ্যাকাউন্ট পর্যালোচনায় রাখে।

নিচের সমাধান পরিকল্পনায় সর্বোচ্চ আটটি পরিবর্তন থাকে। যেখানে প্রযোজ্য, প্রতিটির সঙ্গে কপি করার জন্য DNS রেকর্ড দেওয়া থাকে। প্রতিটি সমাধানের পাশের পয়েন্ট হলো সেটির সঙ্গে সম্পর্কিত পরীক্ষাগুলোর বর্তমান পেনাল্টি। মডেলটি সমাধান বেছে নিয়ে ব্যাখ্যা করে, সেগুলোর মূল্য নির্ধারণ করে না। কোনো পরীক্ষার নাম আপনার অপরিচিত হলে, ৪২টি পরীক্ষার প্রতিটির ব্যাখ্যা ডকুমেন্টেশনে আছে।

প্রশ্ন

আমি কি SES sandbox থেকে পরীক্ষা করতে পারি?

আমাদের ঠিকানা দিয়ে নয়। sandbox-এ SES শুধু যাচাই করা প্রাপকের কাছে ইমেল পৌঁছে দেয়, আর আমাদের ঠিকানা যাচাই করলে এটি যে একটি বার্তা গ্রহণ করে, সেই সুযোগটি শেষ হয়ে যাবে। সংশ্লিষ্ট অঞ্চলের জন্য production access-এর অনুরোধ করুন। এর মধ্যে বিনামূল্যের DKIM, SPF ও DMARC পরীক্ষক দিয়ে আপনার রেকর্ডগুলো পরীক্ষা করুন।

SES mailbox simulator কি একই তথ্য দেয়?

না। এটি জানায় SES কীভাবে bounce, complaint বা delivery পরিচালনা করে, এবং সাধারণ ইমেল পাঠানোর মতোই এর বিল করা হয়। এটি আপনার header, authentication বা content বিশ্লেষণ করে না।

আমার root domain-এর SPF record-এ কি SES যোগ করা উচিত?

গ্রহণকারী সার্ভারগুলো MAIL FROM domain-এর বিপরীতে SPF পরীক্ষা করে। ডিফল্টভাবে এটি amazonses.com-এর একটি subdomain, অথবা আপনার custom MAIL FROM subdomain। SES-এর SPF record ওই subdomain-এই রাখতে হবে। MAIL FROM পৃষ্ঠা অনুযায়ী root domain-এ কিছু যোগ করার প্রয়োজন নেই।

অন্যান্য প্ল্যাটফর্মের নির্দেশিকা

সব ইন্টিগ্রেশন ও নির্দেশিকা →

এখনই একটি ইমেল টেস্ট করুন

একটি ঠিকানা, একটি ইমেল, এক ঘণ্টার জন্য বৈধ। কোনো অ্যাকাউন্ট লাগবে না। পরীক্ষাগুলো শেষ হওয়ার সঙ্গে সঙ্গে রিপোর্ট তৈরি হয়।

একটি টেস্ট ঠিকানা নিন