এই মডিউল কী করে #
সার্ভারে অনেক কিছুই আপনাকে ইমেলের মাধ্যমে জানায়: মেয়াদ শেষ হতে চলা একটি সার্টিফিকেট, ভরে যাওয়া একটি ডিস্ক, একটি রাতের কাজের রিপোর্ট। কিন্তু সদ্য ইনস্টল করা একটি সার্ভার সেই মেইল পাঠাতে জানে না — অথবা এটি সরাসরি বিতরণের চেষ্টা করে এবং স্প্যাম ফোল্ডারে গিয়ে পড়ে, যদি একেবারে প্রত্যাখ্যাত না হয়।
smtp মডিউলটি একটি smarthost-এর (এমন একটি relay যা প্রকৃতপক্ষে বিতরণের অনুমোদিত: Amazon SES, একটি কর্পোরেট মেইল সার্ভার, আপনার প্রদানকারী…) সাপেক্ষে হোস্টের বহির্গামী মেইল কনফিগার করে এটি সমাধান করে। এটি postfix সমন্বয় করে যাতে এটি সব সিস্টেম মেইল সেই smarthost-এ ফরোয়ার্ড করে, পাসওয়ার্ড নিরাপদে সংরক্ষণ করে, প্রেরককে পুনর্লিখন করে যাতে সেটি একটি বৈধ প্রেরক হয়, এবং এটি পৌঁছায় তা নিশ্চিত করতে পাঠানো পরীক্ষা করতে দেয় — কিছু ব্যর্থ হলে প্রকৃত ত্রুটি জানায়।
আপনার smarthost-এর তথ্য প্রস্তুত রাখুন: host, পোর্ট (সাধারণত 587), এবং প্রমাণীকরণ প্রয়োজন হলে শংসাপত্র। পাসওয়ার্ড কমান্ড লাইনে দেওয়া হয় না: এটি stdin থেকে বা secrets স্টোর থেকে পড়া হয়, তাই এটি কখনো আপনার হিস্টরিতে পৌঁছায় না।
সাধারণ কাজ #
আপনি কী করতে চান তা বেছে নিন। প্রতিটি রেসিপিতে কমান্ডটি আগে থেকেই লেখা আছে — শুধু নিজের smarthost ও প্রেরক বসান এবং কপি করুন চাপুন।
1
মেইল relay কনফিগার করুন
সার্ভারকে আপনার smarthost-এর দিকে নির্দেশ করুন যাতে মেইল সত্যিই বেরিয়ে যায়।
ubuntu ব্যবহারকারী হিসেবে SSH-এর মাধ্যমে আপনার সার্ভারে সংযোগ করুন।
আপনার smarthost-এর তথ্য দিয়ে কমান্ডটি চালান। পাসওয়ার্ড stdin-এর মাধ্যমে চাওয়া হয়, তাই এটি কখনো আপনার হিস্টরিতে পৌঁছায় না:
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]আপনার smarthost-এর প্রমাণীকরণ প্রয়োজন না হলে, --user বাদ দিন। ভিন্ন পোর্ট বা TLS মোডের জন্য, --port বা --no-tls যোগ করুন।
[email protected]-তে পুনর্লিখিত। একটি পরীক্ষামূলক ইমেল পাঠান রেসিপি দিয়ে চালিয়ে যান।2
একটি পরীক্ষামূলক ইমেল পাঠান
সতর্কতার উপর নির্ভর করার আগে একটি বার্তা বেরিয়ে গিয়ে পৌঁছায় তা নিশ্চিত করুন।
এমন একটি ঠিকানায় একটি পরীক্ষামূলক ইমেল পাঠান যেখানে আপনি তা যাচাই করতে পারেন:
$ sudo imaxe smtp test --to [email protected]--to বাদ দিলে, এটি কনফিগার করা প্রেরকের কাছে পাঠানো হয়। বিতরণ নিশ্চিত করতে আপনার ইনবক্স (ও স্প্যাম ফোল্ডার) যাচাই করুন।
3
মেইলের অবস্থা দেখুন
relay কনফিগার করা ও সক্রিয় কিনা এক নজরে যাচাই করুন।
relay, smarthost, প্রেরক ও MTA-র অবস্থার একটি সারসংক্ষেপ:
$ sudo imaxe smtp statusএকটি স্ক্রিপ্ট বা ড্যাশবোর্ডের জন্য প্রয়োজন? মেশিন-পাঠযোগ্য আউটপুটের জন্য --json যোগ করুন:
$ sudo imaxe smtp status --json4
কার্যকর কনফিগারেশন দেখুন
পাসওয়ার্ড উন্মোচন না করে সক্রিয় সেটিংস যাচাই করুন।
প্রকৃতপক্ষে ব্যবহৃত host, পোর্ট, user, প্রেরক ও TLS মোড দেখায় (পাসওয়ার্ড কখনো ছাপা হয় না):
$ sudo imaxe smtp show5
relay সরান
ফরোয়ার্ডিং নিষ্ক্রিয় করুন এবং postfix-কে তার আগের অবস্থায় ফিরিয়ে দিন।
বহির্গামী মেইল relay নিষ্ক্রিয় করুন এবং মূল postfix কনফিগারেশন পুনরুদ্ধার করুন:
$ sudo imaxe smtp removeconfigure দিয়ে আবার এটি সেট আপ করতে পারেন।সবচেয়ে সাধারণ কারণ হলো প্রেরক smarthost-এ যাচাই করা নেই (SES-এর ডোমেইন বা --from ঠিকানা যাচাই করা প্রয়োজন), অথবা শংসাপত্র ভুল। imaxe smtp test চালান: এটি প্রকৃত MTA ত্রুটি ফেরত দেয় যাতে আপনি ঠিক জানেন কী সমন্বয় করতে হবে।
সারসংক্ষেপ #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]সব সাবকমান্ডের জন্য root প্রিভিলেজ প্রয়োজন (sudo ব্যবহার করুন) কারণ এগুলো postfix কনফিগারেশন স্পর্শ করে, /etc/imaxe/-তে লেখে ও সিস্টেম সার্ভিস রিলোড করে। smarthost পাসওয়ার্ড কখনো একটি ফ্ল্যাগ হিসেবে দেওয়া হয় না: এটি stdin থেকে বা secrets স্টোর থেকে পড়া হয়। স্ক্রিপ্টিং-এর উপযোগী মেশিন-পাঠযোগ্য আউটপুট পেতে status বা show-এ --json যোগ করুন।
সাবকমান্ড #
| সাবকমান্ড | কী করে | প্রাসঙ্গিক ফ্ল্যাগ |
|---|---|---|
| configure | একটি smarthost-এর সাপেক্ষে বহির্গামী মেইল relay কনফিগার করে। পাসওয়ার্ড secrets/stdin থেকে পড়া হয়। | --host, --port, --user, --from, --tls / --no-tls |
| test | একটি পরীক্ষামূলক ইমেল পাঠায় এবং ব্যর্থ হলে প্রকৃত MTA ত্রুটি জানায়। | --to |
| status | অবস্থা: relay কনফিগার করা, smarthost, প্রেরক ও MTA সক্রিয়। | --json |
| show | পাসওয়ার্ড উন্মোচন না করে কার্যকর কনফিগারেশন দেখায়। | --json |
| remove | relay নিষ্ক্রিয় করে এবং postfix পুনরুদ্ধার করে। | — |
আর্গুমেন্ট ও ফ্ল্যাগ #
| ফ্ল্যাগ | ধরন | ডিফল্ট | বিবরণ |
|---|---|---|---|
| --host আবশ্যক | string | — | মেইল ফরোয়ার্ড করার জন্য SMTP smarthost (যেমন email-smtp.eu-west-1.amazonaws.com)। configure-এর জন্য আবশ্যক। |
| --port | int | 587 | smarthost-এর SMTP পোর্ট। |
| --user | string | — | প্রমাণীকরণের জন্য SMTP user। বাদ দিলে, relay প্রমাণীকরণ ছাড়াই কনফিগার করা হয়। |
| --from | string | — | সব বার্তার প্রেরক পুনর্লিখন করে (sender_canonical)। smarthost-এ যাচাই করা একটি ঠিকানা ব্যবহারের জন্য উপযোগী। |
| --tls / --no-tls | bool | --tls | smarthost-এর সাথে সংযোগে TLS বাধ্য করে (ডিফল্ট)। --no-tls এটি নিষ্ক্রিয় করে। |
| --to | string | remitente | test-এ: পরীক্ষামূলক ইমেলের প্রাপক। ডিফল্টভাবে কনফিগার করা প্রেরক। |
| --json | bool | false | status/show-এ, ফলাফল stdout-এ JSON হিসেবে দেয়। |
কোনো --password অপশন নেই। শংসাপত্রটি configure-এর সময় stdin থেকে বা secrets স্টোর থেকে (password_secret, ডিফল্টভাবে smtp) পড়া হয়, তাই এটি কখনো আপনার হিস্টরিতে বা প্রসেস টেবিলে দেখা যায় না।
ফাইল ও পাথ #
| পাথ | বিষয়বস্তু |
|---|---|
| /etc/imaxe/smtp.yml | মডিউলের কনফিগারেশন: host, পোর্ট, TLS, user, প্রেরক এবং পাসওয়ার্ড secret-এর একটি রেফারেন্স। |
| /etc/postfix/main.cf | Postfix কনফিগারেশন যা মডিউলটি ফরোয়ার্ডিংয়ের জন্য সমন্বয় করে (relayhost, sender canonical…)। |
| /var/log/mail.log | প্রতিটি বিতরণ চেষ্টা ও প্রত্যাখ্যানের কারণসহ Postfix লগ। |
smtp.yml-এর উদাহরণ:
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpপ্রস্থান কোড ও লগ #
প্রতিটি চালানো একটি কোড ফেরত দেয় যা আপনি echo $? দিয়ে যাচাই করতে পারেন — স্ক্রিপ্টে চেইন করার জন্য উপযোগী:
test-এ, ইমেলটি বিতরণের জন্য গৃহীত হয়েছে।একটি পাঠানো ডিবাগ করার সময় মেইল লগটি সরাসরি অনুসরণ করুন:
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]সমস্যা সমাধান #
| উপসর্গ | সম্ভাব্য কারণ | সমাধান |
|---|---|---|
| AUTH (কোড 4) ফেরত দেয় | ভুল smarthost user বা পাসওয়ার্ড। | --user যাচাই করুন এবং stdin-এর মাধ্যমে পাসওয়ার্ড পুনরায় বসিয়ে আবার configure চালান। |
| SEND (কোড 5) ফেরত দেয়, প্রেরক প্রত্যাখ্যাত | --from ঠিকানাটি smarthost-এ যাচাই করা নেই (SES-এ সাধারণ)। | প্রদানকারীর কাছে ডোমেইন বা ঠিকানা যাচাই করুন এবং test আবার চেষ্টা করুন। |
| CONFIG (কোড 3) ফেরত দেয় | এই হোস্টে relay এখনো কনফিগার করা নেই। | আপনার smarthost-এর তথ্য দিয়ে imaxe smtp configure চালান। |
| মেইল বেরিয়ে যায় কিন্তু স্প্যামে গিয়ে পড়ে | প্রেরকের ডোমেইনে SPF/DKIM অ্যালাইনমেন্ট নেই। | --from ডোমেইনের জন্য মেইল প্রদানকারীর রেকর্ড সেট আপ করুন। |
মেইল মডিউল নিয়ে আটকে গেছেন?
«imaxe <module> status --json» এর আউটপুট সহ আমাদের লিখুন, আমরা দ্রুত উত্তর দেব।