জিমেইল ব্যবহার করে কমান্ড লাইনের মাধ্যমে এক-লাইন মেল আউট করার সহজ উপায়?


32

রাস্পবিয়ান এবং উবুন্টু 16.04 এলটিএস ব্যবহার করার জন্য একটি জেনেরিক লিনাক্স সমাধান প্রয়োজন।

প্রয়োজনীয়তা সহজ:

কমান্ড লাইন থেকে আমার এক লাইনের ইমেল বার্তা প্রেরণের একটি উপায় প্রয়োজন।

আমি rpi3abc@gmail.com এর ঠিকানা সহ কেবলমাত্র এই নির্দিষ্ট আরপিআই 3 এর জন্য একটি জিমেইল অ্যাকাউন্ট স্থাপন করেছি - 2 এফএ ছাড়াই

সুতরাং এখন আমি ব্যবহারকারীর হস্তক্ষেপ ছাড়াই কোথাও (ক্রোন সহ) এক-লাইন মেল বার্তা প্রেরণে সক্ষম হব


আমি এটিও পাঠ্য ফাইলগুলি প্রেরণ করতে সক্ষম হতে চাই; মূলত, থেকে কিছু stdin


আপনি কি চান যে আপনার বার্তাটি এই নির্দিষ্ট ঠিকানা, rpi3abc@gmail.com থেকে এসেছে বা এটি আপনার পক্ষে ঠিক আছে যে বার্তাটি আপনার ইউজারনেম @ লোকালহোস্ট থেকে আসে?
জন স্মিথ

এটি rpi3abc@gmail.com থেকে আসে তাই আমি জানি যে আমার কম্পিউটারটি আমার সাথে যোগাযোগ করছে। আমি ক্রোন চাকরিতে এটি বেশিরভাগ ক্ষেত্রেই ব্যবহার করি।
এসডসোলার

উত্তর:


33

জিমেইলের মাধ্যমে এক-লাইন বার্তা প্রেরণের সহজ উত্তর হ'ল এসএমটিপি ব্যবহার করা


নিম্নলিখিত কমান্ড দিয়ে এটি ইনস্টল করুন:

sudo apt-get update
sudo apt-get install ssmtp

এর /etc/ssmtp/ssmtp.confমতো দেখতে সম্পাদনা করুন :

root=rpi3abc@gmail.com
mailhub=smtp.gmail.com:465
FromLineOverride=YES
AuthUser=rpi3abc@gmail.com
AuthPass=testing123
UseTLS=YES

এর মতো একটি ওয়ান-লাইনার পাঠান:

echo "Testing...1...2...3" | ssmtp myusername@gmail.com

অথবা

printf "Subject: Test\n\nTesting...1...2...3" | ssmtp myusername@gmail.com

তারপরে, * নিক্স থেকে সত্য, আপনি কয়েক সেকেন্ডের মধ্যেই প্রম্পটটি ফিরে পাবেন।

আপনার myusername@gmail.com অ্যাকাউন্ট এবং ভয়েলা পরীক্ষা করুন, এটি সেখানে আছে!


এটি কোনও ফাইল প্রেরণের সময়ও ভাল কাজ করে:

cat program.py | ssmtp myotherusername@yahoo.com

এবং প্রোগ্রামটি মেলবক্সে প্রদর্শিত হবে

ফাইলটি যদি কোনও পাঠ্য ফাইল হয় তবে এটিতে একটি প্রথম লাইন থাকতে পারে যা বলে Subject: xxxxxx

এটি বিভিন্ন ক্রোন জবসের সাথে ব্যবহার করা যেতে পারে আমাকে বিষয়বস্তু নির্দেশ করে সাবজেক্ট লাইনের সাথে ডেটা প্রেরণ করতে পারে।


এটি স্ট্যান্ডিনের মাধ্যমে এসএমএসটিপিতে পাইপ করা একটি বার্তা প্রস্তুতকারী কোনও কিছু নিয়ে কাজ করবে।


অন্যান্য ব্যবহারকারীর বিরুদ্ধে এই ফাইলগুলি সুরক্ষিত করার মতো আরও তথ্যের জন্য এবং এই নিবন্ধটি দেখুন:

রাস্পবেরি পাই কমান্ড লাইন থেকে ইমেল প্রেরণ করুন


প্রয়োজনে ফর্ম্যাট বার্তা ফাইলগুলিতে পরিবর্তিত হতে পারে এমন ঠিকানা Ruiলক করার বিষয়ে পোস্ট করা উত্তরের নীচেও নীচের দিকে তাকাতে ভুলবেন না FROM:


এখন যদি আমি বুঝতে পারি যে কীভাবে একইভাবে এসএমএস পাঠানো যায়।


1
আমি ssmtpআমার ভিএমগুলিতেও খুব হালকা ওজন ব্যবহার করি। +1
রুই এফ রিবেইরো

1
পাইথন থেকে সেন্ডমেল এপিআই ব্যবহার করে তা সরাসরি পাঠাচ্ছেন না কেন?
রুই এফ রিবেইরো

এটি আরও একধাপ এগিয়ে নিয়ে যাওয়ার জন্য, এখানে কোনও ফাইল ফাইল সংযুক্তি হিসাবে অন্তর্ভুক্ত করার জন্য এখানে খুব সাধারণ নির্দেশাবলীর তালিকা রয়েছে: unix.stackexchange.com/questions/381131/…
এসডিসোলার

রুইয়ের প্রশ্নের উত্তর দিতে: sendmailএকা মেশিনের বাইরে যোগাযোগের জন্য এমটিএ - মেল ট্রান্সপোর্ট এজেন্টের নেই। ডিফল্টরূপে, ইউনিক্সন যেহেতু ডিজাইনের মাধ্যমে বহু sendmailব্যবহারকারী, তাই একই বাক্সে অন্য ব্যবহারকারীদের বার্তা প্রেরণ করবে তবে বাইরে নয়। ssmtpআমার মনে হয় জিএমএলটির জন্য কনফিগার করা সহজতম এমটিএ।
এসডসোলার

1
পোষ্টিক্স সেটআপ করার চেষ্টা করে চিরকাল ব্যয়! এটি পড়ার জন্য যে কোনও একটি নোট, কনফার্টের একটি টাইপ রয়েছে, রুট প্যারামিটারটি gmail.com হওয়া উচিত জিমেইল নয়।
কডেনিনজা

9

ssmtpঅনেক সেন্ডমেল মোড়কের মধ্যে একটি মাত্র। এগুলি সবাই স্ট্যান্ডার্ড ইনপুটটিতে একটি বার্তা গ্রহণ করে এবং allyচ্ছিকভাবে কমান্ড-লাইন আর্গুমেন্ট হিসাবে ঠিকানাগুলির একটি তালিকা গ্রহণ করে এবং তারা সকলেই নামের একটি বাইনারি দেয় sendmailযা প্রথাগত সেন্ডমেল কমান্ড-লাইন API প্রয়োগ করে (কমপক্ষে প্রাথমিক বৈশিষ্ট্যগুলি)। তবে সঠিকভাবে বলতে গেলে, এই বার্তাটি সঠিকভাবে তৈরি হওয়া দরকার RFC822 বার্তা। সর্বনিম্ন, এটির একটি Subject:শিরোনাম থাকা উচিত ।

ssmtp address@example.com <<<$'Subject: testing 1...2...3'

(সহ ssmtp, sendmailএটির জন্য কেবল একটি সিমিলিংক Post ssmtpপোস্টফিক্স, এক্সিম এবং আমি বিশ্বাস করি যে অন্য সমস্ত এমটিএতে Provides: mail-transport-agentএকই ধরণের ব্যবস্থা রয়েছে, sendmailযেখানে sendmailবাইনারিটি "আসল জিনিস" হিসাবে ব্যতীত))

আরও সাধারণভাবে, আপনি এখানে একটি নথির সাথে একটি সাধারণ ইমেল বার্তা একসঙ্গে করতে পারেন।

/usr/lib/sendmail -oi -t <<____HERE
Subject: testing
To: recipient@example.net

Here we interpolate the shell variable $result
____HERE

(প্রেরণমেল -tবিকল্পটি স্ট্যান্ডার্ড ইনপুটটিতে প্রাপ্ত বার্তার শিরোনামগুলির থেকে প্রাপক তালিকা গ্রহণ করতে বলে Send সেন্ডমেলের সঠিক পথটি প্ল্যাটফর্মের মধ্যে পৃথক হবে))

আর একটি সাধারণ প্রকরণ হ'ল কয়েকটি কমান্ডের আউটপুট একত্রিত করা। শিরোনাম এবং বার্তা শৃঙ্খলার মধ্যে ফাঁকা লাইন (একটি "ঘাড়") রাখার যত্ন নিন।

( printf "Subject: random number\n\n"
  dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -D -An ) |
sendmail elsewhere@example.org

খুব সহজ হওয়া ASCII শুধুমাত্র পাঠ্য বার্তাগুলিকে ছাপিয়ে কিছু জন্য, তোমাকে বুঝতে একটি সঠিক এমআইএমই বার্তা, যা বিন্দু এটি সাধারণত মত একটি টুল ব্যবহার করার জন্য আরো ইন্দ্রিয় তোলে রচনা করতে কিভাবে প্রয়োজন mutt। কিছু প্ল্যাটফর্মের একটি আছে mailবা mailxকীভাবে সংযুক্তি এবং অ হওয়া ASCII টেক্সট পাঠাতে জানে, কিন্তু এই সম্পূর্ণরূপে পোর্টেবল নয়।

এখানে চ্যালেঞ্জটি এমন কোনও ক্লায়েন্টকে খুঁজে পাচ্ছে না যা ইমেল বার্তা নিতে পারে এবং এটি প্রেরণের চেষ্টা করতে পারে, এটি জিমেইলের সুনির্দিষ্টতার জন্য এটি কনফিগার করতে হয়, যার জন্য দূরবর্তী সার্ভারের জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড জানতে এমটিএর প্রয়োজন বহির্গামী স্মার্টথ হিসাবে এটি ব্যবহার করতে সক্ষম হতে

লোকচক্ষুর অন্তরালে, সবচেয়ে ক্লায়েন্ট পছন্দ mutt, mailxইত্যাদি সাধারণত শুধু চালানোর sendmailলোকচক্ষুর অন্তরালে সিস্টেমটি বন্ধ বার্তা পেতে।


সরাসরি সেন্ডমেল ব্যবহার করে আমি বেশি ভাগ্য চাই না; অতএব ssmtp এ ঘুরছে। আপনার উত্তরের জন্য উত্সাহ দিন। যাইহোক, সংযুক্তি হিসাবে চিত্রগুলি প্রেরণ করার জন্য আমি সহজতম উপায়টিকে সম্ভব হিসাবে খুঁজে পেয়েছি। আমি এমনকি মাইম সম্পর্কে চিন্তা করতে হবে না। আমি এখানে এমপ্যাক ব্যবহার করেছি, যেমনটি এখানে বর্ণিত হয়েছে: unix.stackexchange.com/questions/381131/…
এসডসোলার

8

ওপিতে নিজস্ব উত্তর যুক্ত করা:

কনফিগার করার সময় ssmtpআপনি ব্যবহারকারীদের থেকে সংজ্ঞাটি দিতে বা নিষেধ করতে বা ডোমেনটিকে ওভাররাইড করতে পারেন; স্প্যাম ফোল্ডারে না আসা বার্তা সহ বিভিন্ন কারণে আপনি এটি করতে চাইতে পারেন।

আপনি এতে যুক্ত করতে পারেন /etc/ssmtp/ssmtp.conf:

# Where will the mail seem to come from?
rewriteDomain=my_internet_domain.uk

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

দয়া করে মনে রাখবেন যে ইয়েস একটি হোম রাস্পবেরিতে ব্যবহার করা যেতে পারে, তবে এটি সুরক্ষা দৃষ্টিকোণ থেকে একাধিক ব্যবহারকারীর সিস্টেমে উপযুক্ত নয়।


ভোট দিন। দুর্দান্ত তথ্য।
এসডসোলার

5

"মেল" এর সাথে কী সমস্যা?

প্রতিধ্বনি "হাই সেখানে" | মেল -s "গুরুত্বপূর্ণ মেল" user@example.com

"মেইল" হচ্ছে / ইত্যাদি / বিএসডি-মেলেক্স প্যাকেজ থেকে / usr / bin / bsd-mailx বিকল্প লিঙ্ক। আমি বিশ্বাস করি এটি পূর্বনির্ধারিতভাবে আছে। উদাহরণস্বরূপ ক্রোন স্ক্রিপ্ট থেকে মেল প্রেরণের জন্য দুর্দান্ত ইউটিলিটি।

পাশাপাশি উবুন্টু এবং ফ্রিবিএসডি-তেও কাজ করে।


3
mailxঠিক সামনের শেষ স্থানীয় সিস্টেমটি বন্ধ করে দেওয়ার জন্য এটির কিছু এমটিএ কনফিগার করা দরকার। প্রচলিত ব্যবহারে একাধিক বেমানান সংস্করণ রয়েছে, যদিও আপনার টার্গেট প্ল্যাটফর্মটি কেবলমাত্র ডেবিয়ান, আপনি সাম্প্রতিক বিএসডি আচরণের উপর নির্ভর করতে পারেন।
ট্রিপলি

4

আমি এটির জন্য ব্যবহারের mailxপক্ষে সত্যই আংশিক :

echo "Message body." | mailx -s "Subject line" -a /path/attachment.txt -r "Sender's Name<sender@email.com>" -c recipient2@email.com recipient1@email.com

1
এখানে বেশ কয়েকটি বিকল্প অনেকগুলি নন-ডেবিয়ান / নন-বিএসডি সিস্টেমে উপলব্ধ হবে না। -aবিশেষ করে বিকল্প চমৎকার হবে যদি এটা সর্বজন সমর্থিত হয়েছিল, কিন্তু শুধু ব্রাউজ mailxদেখতে এই বেশ অবশ্যই ঘটনা না এখানে প্রশ্ন।
ট্রিপল

2

আমি বাহ্যিক সরবরাহকারীর এসএমটিপি সার্ভারের মাধ্যমে সাধারণ স্বয়ংক্রিয় ইমেলগুলি প্রেরণের জন্য সেন্ডইমেল ব্যবহার করি:

sendEmail -q -f "me@mail.com" -u "mySubject" -t "someone@mail.org" -s "my.smtp.com" -o tls=yes -xu "mySmtpUser" -xp "mySmtpPw" -m "myMessage"

আমি সমস্ত কিছু এক লাইনেই পাস করি, সুতরাং কমান্ড লাইনে এটি করার ফলে সমস্ত ব্যবহারকারীর কাছে সমস্ত পরামিতি (এসএমটিপি পাসওয়ার্ড সহ) প্রদর্শিত হবে, যদি ps -efআমি কমান্ডটি চালাচ্ছি তবে তারা কিছুক্ষণ চালায়। আমি এটি শেল স্ক্রিপ্টের মধ্যে ব্যবহার করি।


1
এটি কোনও স্ট্যান্ডার্ড ইনস্টল নয় এবং এই নামে একাধিক ক্লায়েন্ট রয়েছে। আমার ধারণা আপনি এন.ইউইকিউইকিপিডিয়া / উইকি / সেন্ডমেলকে উল্লেখ করছেন । এটি কি ডেবিয়ান প্যাকেজ হিসাবে উপলব্ধ?
ট্রিপলি

শেল স্ক্রিপ্ট সম্পর্কে ভাল চিন্তা যেমন একটি বহু ব্যবহারকারী সিস্টেমের মতো। আমি পছন্দ করি যে আমার পাসওয়ার্ডটি মেশিনের সাহসের গভীরে একটি ফাইলে রয়েছে। আমি কেবল চাই যে আমি পরিষ্কার পাঠ্যের পরিবর্তে একটি হ্যাশ পাসওয়ার্ড সঞ্চয় করতে পারি।
এসডসোলার

: আমি এই প্যাকেজ উল্লেখ করা হয়েছিল packages.debian.org/search?keywords=sendemail
user684790

1
আমি এই উত্তরটি প্রদর্শন করে দেখছি না যে এটি মূল প্রশ্নের মধ্যে উল্লিখিত হিসাবে জিমেইল নিয়ে কাজ করে।
এসডসোলার

এটি জিমেইলের সাথে কাজ করে, প্রাক্তন: s -smtp.gmail.com -o tls = হ্যাঁ-এক্সপ্রেস আপনার_জিমেইল_প্যাসওয়ার্ড -s smtp.gmail.com: 587`
রোজারডপ্যাক

1

আমার সার্ভারটি সিএনটিওএস send, এবং এতে সেন্ডমেল রয়েছে তবে মেলেক্সস নয় etc. সরাসরি প্রেরণমেল ব্যবহার করে পরীক্ষা করে নেওয়া একটি নতুন প্রোগ্রাম ইনস্টল করার চেয়ে আমি খুঁজে পেয়েছি যে এটি কাজ করে:

echo -e "From: you@whatever\nTo: you@gmail.com\nSubject: this is the subject\n\nThis is the body,\nwith multiple lines." | sendmail -t

আমার কাছে এটি একটি সংক্ষিপ্ত ইমেল প্রেরণের সহজতম উপায় বলে মনে হচ্ছে, কারণ এটিতে কোনও সার্ভার বা ডিমন চালানো বা কনফিগার করা প্রয়োজন হয় না এবং এটি একটি একক কমান্ড লাইনেও করা যায়।

ধারণাটি হ'ল কোনও বার্তাটি কেবল আমাকে সতর্ক করবে যে কোনও নির্দিষ্ট প্রোগ্রাম কোনও সম্ভাব্য গোপনীয় তথ্য প্রকাশ না করেই একটি ত্রুটি ফেলেছিল এবং তারপরে আমি লগগুলি পরিদর্শন করতে সার্ভারের কাছে এসএসএইচ করব। এই পদ্ধতিতে ফাইল সংযুক্তি বা পরিবহন এনক্রিপ্ট করার মতো জটিলতায় বিরক্ত করার দরকার নেই।

নোট:

  • -e প্রতিধ্বনি '' n 'এবং অন্যান্য পলায়নের ব্যাখ্যা করতে বলে।
  • -t মেসেজ শিরোলেখটিতে 'টু:' থেকে প্রাপক ঠিকানা পেতে সেন্ডমেলকে বলে।
  • যদি মেলটি না আসে, tail /var/log/maillogত্রুটি বার্তা দেখতে ব্যবহার করুন।
  • আপনার জিমেইল ঠিকানায় প্রেরণ করা হলে, জাঙ্ক ফোল্ডার থেকে দূরে রাখতে Gmail এ একটি ফিল্টার তৈরি করুন।
  • এই সেন্ডমেলটি আসলে 'সেন্ডমেল.পোস্টফিক্স' (যা সাধারণ হতে পারে); এখানে একটি ম্যান পেজ আছে

1
আপনার সিস্টেমে অবশ্যই একটি এমটিএ ইনস্টল থাকা থাকতে হবে যা নিয়ে কাজ করছে sendmail - তবে আমি এই উত্তরটি দেখছি না যে এটি
জিমেইলের সাথে

@ এসডসোলার আপনি ঠিক বলেছেন পোস্টফিক্সটি আমার সার্ভারে চলছে এবং আমি জানতাম না। এটি একটি Centos ইনস্টল সহ স্ট্যান্ডার্ড বলে মনে হচ্ছে; সম্ভবত ডিজিটাল ওশান এটি কনফিগার করেছে। এটি কোনও পাবলিক বন্দরে শুনছে না। জিমেইলের মাধ্যমে প্রেরণের ক্ষেত্রে, আমার বক্তব্যটি হ'ল আপনার প্রয়োজন নেই, আপনি নিজের সার্ভার থেকে সরাসরি পাঠাতে পারেন, যদি আপনি কেবল নিজের কাছে প্রেরণ করেন। (আমি এখানে আমার নিজের প্রশ্ন জিজ্ঞাসা করতে পারি এবং এই উত্তরটি এখানে সরিয়ে ফেলতে পারে যদি না))
j77h
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.