আমি কীভাবে লিনাক্স 'মেল' কমান্ড ব্যবহার করে এইচটিএমএল ইমেল পাঠাব?


66

mail -s "subject" xxxxx@gmail.com <test.html কাজ করে, তবে কেবল সাধারণ পাঠ্য ইমেলের জন্য।

লিনাক্স কমান্ডটি ব্যবহার করে এইচটিএমএল ইমেল প্রেরণের সঠিক উপায় কী mail?

উত্তর:


61

mailচারপাশে বিভিন্ন সংস্করণ আছে। আপনি যখন বাইরে চলে যান mail -s subject to1@address1 to2@address2 <body(প্রেরণের জন্য, এটিই সমস্ত পসিক্স গ্যারান্টি রয়েছে - এবং এমনকি পুরানো দিনগুলিতেও ছিল না ), তাদের আলাদা কমান্ড লাইনের বিকল্প থাকে। অতিরিক্ত শিরোনাম যুক্ত করা সর্বদা সহজ নয়।-s

  • কিছু mailxবাস্তবায়ন সহ, যেমন উবুন্টু বা ডেবিয়ান থেকেmailutils , এটি সহজ, কারণ এর জন্য বিকল্প রয়েছে।bsd-mailx

    mailx -a 'Content-Type: text/html' -s "Subject" to@address <test.html
    
  • সঙ্গে heirloom mailx , কোন সুবিধাজনক উপায়। স্বেচ্ছাসেবক শিরোনাম সন্নিবেশ করার একটি সম্ভাবনা হ'ল editheaders=1একটি বাহ্যিক সম্পাদক (যা কোনও স্ক্রিপ্ট হতে পারে) সেট করে ব্যবহার করা।

    ## Prepare a temporary script that will serve as an editor.
    ## This script will be passed to ed.
    temp_script=$(mktemp)
    cat <<'EOF' >>"$temp_script"
    1a
    Content-Type: text/html
    .
    $r test.html
    w
    q
    EOF
    ## Call mailx, and tell it to invoke the editor script
    EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF
    ~e
    .
    EOF
    rm -f "$temp_script"
    
  • একটি সাধারণ পসিক্স সহmailx , আমি শিরোনামে কীভাবে যাব জানি না।

আপনি যদি কোনও ব্যবহার করতে যাচ্ছেন mailবা তা mailxমনে রাখবেন

  • কোনও প্রদত্ত লিনাক্স বিতরণের মধ্যেও এটি পোর্টেবল নয়। উদাহরণস্বরূপ, উবুন্টু এবং ডেবিয়ান উভয়েরই জন্য mailএবং এর বিভিন্ন বিকল্প রয়েছে mailx
  • কোনও বার্তা লেখার সময় mailএবং কমান্ড হিসাবে mailxশুরু হওয়া লাইনের সাথে আচরণ ~করে। আপনি যদি পাঠ্যটি এতে পাইপ করেন তবে আপনাকে mailএই পাঠ্যটির শুরুতে লাইন না রাখার ব্যবস্থা করতে হবে ~

আপনি যদি যাইহোক সফ্টওয়্যার ইনস্টল করতে চলেছেন, আপনি পাশাপাশি mail/ Mail/ এর চেয়ে আরও পূর্বাভাসযোগ্য কিছু ইনস্টল করতে পারেন mailx। উদাহরণস্বরূপ, গাড়ল । মুট এর সাহায্যে আপনি বেশিরভাগ শিরোলেখ -Hবিকল্পের সাহায্যে ইনপুট সরবরাহ করতে পারেন , তবে তা নয়Content-Type , যা একটি মুট বিকল্পের মাধ্যমে সেট করা দরকার।

mutt -e 'set content_type=text/html' -s 'hello' 'to@address' <test.html

অথবা আপনি sendmailসরাসরি প্রার্থনা করতে পারেন । এর sendmailবাইরে বেশ কয়েকটি সংস্করণ রয়েছে তবে তারা সকলেই sendmail -tমেল থেকে প্রাপকদের তালিকাটি পড়ে, সহজতম ফ্যাশনে একটি মেল প্রেরণে সমর্থন করে। (আমি মনে করি তারা সবাই সমর্থন করে না Bcc:।) বেশিরভাগ সিস্টেমে, সাধারণত sendmailহয় না $PATH, এটি হয় /usr/sbinবা হয় /usr/lib

cat <<'EOF' - test.html | /usr/sbin/sendmail -t
To: to@address
Subject: hello
Content-Type: text/html

EOF

উপরের মুট উদাহরণ ব্যবহার করার চেষ্টা করা; ফাইলের নাম, ইমেল ঠিকানা ইত্যাদির জন্য প্রকৃত মান প্রতিস্থাপন করা হয়েছে তবে "কোনও প্রাপক নির্দিষ্ট করা হয়নি" আমি মুটতে খুব নতুন, @ গিলস জানেন কী এমন ঘটনা ঘটেছে? (ওক্স পর্বত সিংহ, হোমব্রিউয়ের মাধ্যমে 1.5-21 মুট স্থাপন করা হয়েছে)
চক ভ্যান ডের লিন্ডেন

আমার দ্বিতীয় লাইনটি ছিল "প্রতি: myaddress@mycompany.com" (বিন্যাসের অভাবের জন্য দুঃখিত, প্রতিক্রিয়াতে সম্ভব নয়, প্রকৃত পাঠ্যটি স্যান কোটস ছিল) এবং আমি ইওএফ-এ রাখার আগে একটি ফাঁকা রেখা অন্তর্ভুক্ত করেছি। আমার কি কনফিগারেশন করা দরকার? আপনি যে উদাহরণটি দিয়েছেন তার চেষ্টা করার আগে (যথাযথ মানের পরিবর্তে) আমি যা কিছু করেছি তা হ'ল 'ব্রিউ ইনস্টল মুট'
চক ভ্যান ডের লিন্ডেন

@ চকভান্ডারলিন্ডেন একটি নতুন প্রশ্ন জিজ্ঞাসা করুন। আপনি যে সঠিক কমান্ডটি চালিয়েছেন এবং সম্পূর্ণ ত্রুটি বার্তাটি অনুলিপি করুন। ইন্টারেক্টিভ ইন্টারফেস ব্যবহার করে আপনি মুট থেকে কোনও ইমেল প্রেরণ করতে পারেন কিনা তা দেখুন।
গিলস

আমি 'ইন্টারেক্টিভ' ইন্টারফেসের মাধ্যমে কিছু পাঠাতে সক্ষম হয়েছি, এটি প্রাথমিকভাবে কোনও মেল ডিরেক্টরি অনুপস্থিত সম্পর্কে অভিযোগ করেছিল এবং এটি তৈরির প্রস্তাব দিয়েছিল। আমি ভিমকে কতটা ঘৃণা করি তা মনে করিয়ে দিয়ে ;-) তবে এটি পাঠাতে পেলাম। আমি এটি একটি নতুন প্রশ্ন শুরু করব কারণ এটি ফর্ম্যাট করা সহজ etc. ইত্যাদি সঠিক ত্রুটি বার্তাটি কেবলমাত্র আমি বলেছিলাম "কোনও প্রাপক নির্দিষ্ট করা হয়নি।"
চক ভ্যান ডের লিন্ডেন


13
#!/bin/sh

(
echo "To: me@example.com"
echo "Subject: hello"
echo "Content-Type: text/html"
echo
echo "<html><b><font size='7'>H</font>ello</b></html>"
echo
) | /usr/sbin/sendmail -t

5
এটি নিখুঁতভাবে ব্যবহার করে না mail

3
@ ব্যবহারকারী 16144 না, তবে এটি একটি দুর্দান্ত বিকল্প যা ওপি বিবেচনা করতে পছন্দ করতে পারে।
trusktr

হ্যাঁ, এটি মেল ব্যবহার করে না তবে এটি চেষ্টা করেছি যেখানেই চেষ্টা করে যা অন্য সমাধানগুলির জন্য আমি বলতে পারার চেয়ে বেশি।
ব্যবহারকারী 1683793

ম্যাকের পাশাপাশি সুন্দরভাবে কাজ করে।
অসীম জলিস

7

হেরলুম মেলেক্স সহ, সুবিধাজনক উপায় is

mailx -s "$(echo -e "Newsletter issue 3\nContent-Type: text/html")" user@server.com < /tmp/htmlmail.txt

ধন্যবাদ, ডুড
ফেডোরা 17 এ পরীক্ষিত, এবং কাজ করেছে


1
নির্লজ্জ. আমি এটা পছন্দ করি. : -]
অ্যালাস্টার ইরভিন

1
সতর্কতা অবলম্বন করুন যে সমাধানটি ইমেলটিকে "বিষয়বস্তুর ধরণ: পাঠ্য / এইচটিএমএল" এবং "বিষয়বস্তুর ধরণ: পাঠ্য / প্লেইন", এবং সম্ভাব্য অসামঞ্জস্য উভয়ই হতে পারে যদি আপনি এইভাবে চরসেট নির্দিষ্ট করার জন্য ব্যবহার করেন।
স্কিপি লে গ্র্যান্ড গৌরু

5

এটি Content-Typeকরতে আপনার ইমেলটিতে আপনাকে শিরোনাম যুক্ত করতে হবে।

echo "<html><b>Hello</b></html>" | mail -a "Content-type: text/html;" -s "Testing" me@example.com

কাজ করবে


2
মেল: অবৈধ বিকল্প - এ
পাইথ্নার

তোমার কি আছে mailx? বিকল্প হতে পারে। যদি এটি কাজ না করে। যদি এটি কাজ না করে, আপনি মুট ব্যবহার বিবেচনা করতে পারেন যদিও কমান্ড লাইনটি এটি করতে সুইচ করে তা আমি জানি না।
নওফাল ইব্রাহিম

1
যদি মেল সরিষা কাটছে না, অজগরটি ব্যবহার করুন ... ডকস.পাইথন.আর.লিবেরি / ইমেল- উদাহরণস্বরূপ HTML উদাহরণগুলি তৃতীয়টি বা # 6 যা আপনার প্রয়োজন অনুসারে হয়।
sdolgy

পাইথন আপনাকে স্ক্রিপ্ট লিখতে (এবং বজায় রাখতে) প্রয়োজন। কমান্ড লাইন ওয়ান লাইনারের বিভিন্ন সুবিধা রয়েছে।
নওফাল ইব্রাহিম

আমার কাছে মেলেক্স রয়েছে, তবে "অপশন -এ" কাজ করে না, এখনও দেখান: মেল: অবৈধ বিকল্প - একটি
পাইথ0

3

উত্তরাধিকারী-মেলেক্সের সাহায্যে আপনি আপনার হুক স্ক্রিপ্টে সেন্ডমেল প্রোগ্রাম পরিবর্তন করতে পারেন, সেখানে শিরোনাম প্রতিস্থাপন করতে পারেন এবং তারপরে সেন্ডমেল ব্যবহার করতে পারেন।

আমি যে স্ক্রিপ্টটি ব্যবহার করি ( ~/bin/sendmail-mailx-hook):

#!/bin/bash

sed '1,/^$/{
s,^\(Content-Type: \).*$,\1text/html; charset=utf-8,g
s,^\(Content-Transfer-Encoding: \).*$,\18bit,g
}' | sendmail $@

এই স্ক্রিপ্টটি মেল শিরোনামের মানগুলি নিম্নরূপে পরিবর্তন করে:

  • Content-Type: প্রতি text/html; charset=utf-8
  • Content-Transfer-Encoding:to 8bit(এটি সত্যিকারের প্রয়োজন কিনা তা নিশ্চিত নয়)।

এইচটিএমএল ইমেল পাঠাতে:

mailx -Ssendmail='~/bin/sendmail-mailx-hook' -s "subject" xxxxx@gmail.com < test.html

এই পদ্ধতিটি @ গিলস প্রস্তাবিতের চেয়ে বেশি কার্যকর কারণ এটি অস্থায়ী ফাইল তৈরি করে না এবং কেবলমাত্র ফ্লাইটটিকে অন ফ্লাইটটি ঠিক করে দেয়।


1

ঘটতে আমি নীচের স্ক্রিপ্টগুলি ব্যবহার করেছি

#!/bin/ksh

(
echo "To: yourmail@domain.com"
echo "Subject: Job Status"
echo "Content-Type: text/html"
echo
echo "<html>
<head>
<title>Status of the jobs during the day</title>
<style>
table, th, td {
    border: 1px solid blue;
    border-collapse: collapse;
}
th, td {
    padding: 5px;
}
</style>
</head>
<body>
<table style='width:100%'>
<tr bgcolor='#808080'>
    <th>Job Name</th>
    <th>System name</th>
    <th>Status</th>
  </tr>
  <tr>
    <td>Job-1</td>
    <td>Sys</td>
    <td>Sucess</td>
  </tr>
  <tr>
    <td>Job-2</td>
    <td>sys</td>
    <td>Failure</td>
  </tr>
  <tr>
    <td>Job-3</td>
    <td>sys</td>
    <td>Sucess</td>
  </tr>
 </table>
</body></html>"
echo
) | /usr/sbin/sendmail -t

0

আমার জন্য আমাকে এসএমটিপি সার্ভারের মতো একটি ভেরিয়েবল নির্দিষ্ট করা দরকার, তাই মেল কমান্ডটি নীচের ফ্যাশনে কাজ করেছিল। আমি অনেকগুলি পোস্ট জুড়ে অনুসন্ধান করেছি এবং বডিটিকে পাঠ্য / এইচটিএমএল রূপান্তর করতে আমি নীচে সম্পত্তি পেয়েছি। এখন আমি প্রাপ্ত ইমেলটি HTML ফর্ম্যাটে।

সামগ্রী-বিভাজন: ইনলাইন line

ইউনিক্স সংস্করণ: রেড হ্যাট এন্টারপ্রাইজ লিনাক্স সার্ভার 6.6 (সান্টিয়াগো) রিলিজ করেছে

প্রথম। কোনও স্ক্রিপ্টে যা যা তথ্য প্রয়োজন তা তৈরি করুন (testSql.sh)

echo "<html><body><pre>"
mysql -u USERNAME -pPASSWORD -P PORTNUMBER -h HOSTNAME DBNAME --table -e "select columns from tablename where member in ('value1','value2')"
echo "</pre></body></html>"

দ্বিতীয়ত। মেল কমান্ডে সেই স্ক্রিপ্টটি পাইপ করুন

./testSql.sh  | mail -v -S smtp=smtp://IP:PORTNUMBER -s "$(echo -e "This is the subject\nContent-Type: text/ht ml\nMIME-Version: 1.0\nContent-Disposition: inline")" userid@email.com

এটি করে আমি ইমেলের নীচে হিসাবে তথ্য পেয়েছি:

সামগ্রী-বিভাজন: ইনলাইন বার্তা-আইডি: ব্যবহারকারী-এজেন্ট: উত্তরাধিকারী মেলএক্স 12.4 7/29/08 মিমি-সংস্করণ: 1.0 সামগ্রী-প্রকার: পাঠ্য / সরল; চরসেট = us-ascii সামগ্রী-স্থানান্তর-এনকোডিং: 7 বিট

মান 1 মান 2

এইচটিএমএল ট্যাগিং অনুসারে মান্য 1 এবং মান 2 টেস্টস্কুল.এসএসে সম্পন্ন হয়


-5
cat htmlfile.html | mail -s "subject" xx@example.com

5
নাঃ। এটি শরীরে এইচটিএমএল সহ একটি পাঠ্য ইমেল প্রেরণ করবে।
নওফাল ইব্রাহিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.