سؤال

إرسال رسالة يونكس باستخدام سطر الأوامر mail TO_ADDR النتائج في البريد الإلكتروني من $USER@$HOSTNAME.هل هناك طريقة لتغيير "من:" العنوان المدرج بواسطة mail?

للعلم انا استخدم جنو Mailutils 1.1/1.2 على أوبونتو (ولكن رأيت نفس السلوك مع فيدورا و RHEL).

[عدل]

$ mail -s Testing chris@example.org                                                                  
Cc: 
From: foo@bar.org

Testing
.

ينتج

Subject: Testing
To: <chris@example.org>
X-Mailer: mail (GNU Mailutils 1.1)
Message-Id: <E1KdTJj-00025z-RK@localhost>
From: <chris@localhost>
Date: Wed, 10 Sep 2008 13:17:23 -0400

From: foo@bar.org

Testing

"من:foo@bar.org" خط هو جزء من نص الرسالة ، وليس جزءا من رأس.

هل كانت مفيدة؟

المحلول

في بلدي نسخة من البريد ( ديبيان لينكس 4.0 ) الخيارات التالية العمل للسيطرة على المصدر / رد عناوين

  • على -a التبديل ، عن رؤوس إضافية لتطبيق وتوريد مجموعة من:رأس على سطر الأوامر التي سيتم إلحاق البريد الصادر رأس
  • على $REPLYTO متغير البيئة تعين الرد إلى:رأس

لذلك التسلسل التالي

export REPLYTO=cms-replies@example.com
mail -aFrom:cms-sends@example.com -s 'Testing'

والنتيجة في عملاء البريد هو البريد من cms-sends@example.com ، أي ردود الافتراضي إلى cms-replies@example.com

ملحوظة:: نظام التشغيل Mac OS المستخدمين:لم يكن لديك ، ولكن لديك $REPLYTO

ملحوظة(2): CentOS المستخدمين العديد من المعلقين وأضاف أن تحتاج إلى استخدام -r لا -a

ملحوظة(3): هذا الجواب هو لا يقل عن عشرة سنة(1) ، يرجى تضع ذلك في اعتبارها عندما كنت قادما من جوجل.

نصائح أخرى

على Centos 5.3 أنا قادرة على القيام:

mail -s "Subject" user@address.com -- -f from@address.com < body

Double dash توقف البريد من تحليل -f حجة يمر على طول تنسخ نفسها.

غنو mailutils هو 'البريد' الأمر لا تمكنك من فعل هذا (بسهولة على الأقل).ولكن إذا قمت بتثبيت 'الإرث-mailx' ، الأمر البريد (mailx) لديها '-r' الخيار لتجاوز الافتراضي '$USER@$HOSTNAME' من الحقل.

echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com

يعمل 'mailx' ولكن ليس 'البريد'.

$ ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 2010-12-23 08:33 /usr/bin/mail -> /etc/alternatives/mail
$ ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 23 2010-12-23 08:33 /etc/alternatives/mail -> /usr/bin/heirloom-mailx
mail -s "$(echo -e "This is the subject\nFrom: Paula <johny@paula.com>\n
Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" 
milas.josh@gmail.com < htmlFileMessage.txt

أعلاه هو الحل....أي إضافية رؤوس يمكن أن تضاف بعد من و قبل الرد على...فقط تأكد من أنك تعرف رؤوس الجملة قبل إضافتها....هذا يعمل تماما بالنسبة لي.

بالاضافة الى انها جيدة للاستخدام -F option تحديد اسم المرسل.

شيء من هذا القبيل:

mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com

أو مجرد إلقاء نظرة على الخيارات المتاحة:http://www.courier-mta.org/sendmail.html

ومن الممكن أيضا تعيين كل من اسم و عنوان استخدام شيء من هذا القبيل:

 echo test | mail -s "test" example@example.com -- -F'Some Name<example2@example.com>' -t

لسبب ما يمر -F'Some Name' و -fexample2@example.com لا يعمل ، ولكن يمر في -t أن تنسخ يعمل و هو "السهل".

وهنا بعض الخيارات:

  • إذا كان لديك privelige بما فيه الكفاية ، تكوين sendmail للقيام كتابة مع الأدوية الجدول

  • كتابة كامل رأس نفسك (أو البريد الإلكتروني لنفسك حفظ الرسالة بالكامل مع جميع رؤوس ، وإعادة تحرير وإرسال ذلك مع rmail من سطر الأوامر

  • إرسال مباشرة مع sendmail استخدام "-f" سطر الأوامر العلم لا تشمل "من:" سطر في الرسالة الخاصة بك

هذه ليست بالضبط نفس ، ولكن سأترك الأمر لك ننظر في الأمر كذلك.

على بلدي المحمولة لدي sendmail مصادقة عميل إلى ملقم البريد الصادر و استخدام الأدوية لجعل عودته البريد تأتي إلى حساب آخر.وهي تعمل مثل السحر.لقد الكلي البريد الوارد مع fetchmail.

أنا لا أعرف إذا كان هو نفسه مع نظام التشغيل الأخرى, ولكن في اكبر برهان البريد قيادة هذه الجملة:

mail to-addr ... -sendmail-options ...

تنسخ له -و الخيار حيث يمكنك الإشارة إلى عنوان البريد الإلكتروني من:الحقل.الأمر التالي يعمل بالنسبة لي.

mail recepient@example.com -f from@example.com

شكرا العاشق

mail -s "Subject" user@address.com -- -f from@address.com

أنا فقط وجدت هذا و يعمل بالنسبة لي.صفحات الرجل على البريد 8.1 على CentOS 5 لا أذكر هذا.بالنسبة -f الخيار الصفحة الرجل يقول:

-و قراءة الرسائل من ملف اسمه ملف المعامل بدلا من نظام البريد.(انظر أيضا المجلد.) إذا كان لا يوجد ملف المعامل المحدد, قراءة الرسائل من mbox بدلا من نظام البريد.

على أية حال هذا هو رائع أن تجد, شكرا.

أنا اشتقاق هذا من كل الإجابات أعلاه.لا شيء يعمل بالنسبة لي عندما حاولت كل واحد منهم.لقد فعلت الكثير من درب والخطأ من خلال الجمع بين كل الإجابات أعلاه وخلص على هذا.أنا لست متأكدا مما إذا كان هذا يعمل لك ولكن لأنها عملت لي على Ununtu 12.04 و RHEL 5.4.

echo "This is the body of the mail" | mail -s 'This is the subject' '<receiver-id1@email.com>,<receiver-id2@email.com>' -- -F '<SenderName>' -f '<from-id@email.com>'

واحد يمكن إرسال البريد إلى أي عدد من الناس عن طريق إضافة أي عدد من المتلقي معرف البريد المرسلة من قبل SenderName من from-id@email.com

ويساعد هذا الأمل.

على دبيان 7 كنت لا تزال غير قادر على تعيين بشكل صحيح عنوان المرسل باستخدام إجابات عن هذا السؤال: (هل دائما يكون اسم مضيف الملقم) ولكن حلها بهذه الطريقة.

تثبيت الإرث-mailx

apt-get install heirloom-mailx

ضمان الافتراضي.

update-alternatives --config mailx

إنشاء رسالة.

mail -s "Testing from & replyto" -r "sender <sender@example.com>" -S replyto="sender@example.com" recipient@example.net < <(echo "Test message")

echo "body" | mail -S from=address@foo.com "Hello"

-S يتيح لك تحديد الكثير من سلسلة خيارات أسهل طريقة لتعديل رؤوس هذه.

على CentOS هذا عملت بالنسبة لي:

echo "email body" | mail -s "Subject here" -r from_email_address email_address_to

هذا عملت بالنسبة لي

echo "hi root"|mail -rsawrub@testingdomain.org -s'testinggg' root

على CentOS 5.5, أسهل طريقة وجدتها تعيين الافتراضي من المجال هو تعديل ملف المضيفين.إذا كان لديك ملف المضيفين على شبكة WAN/عنوان IP العام ، ببساطة تعديل الأولى المضيف المدرجة على ذلك.على سبيل المثال ملف hosts الخاص بك قد تبدو مثل:

...
11.22.33.44 localhost الافتراضي المجال whatever-else.com
...

جعلها ترسل من whatever-else.com ، ببساطة تعديله بحيث whatever-else.com هي المذكورة أولا ، على سبيل المثال:

...
11.22.33.44 whatever-else.com localhost الافتراضي المجال
...

لا أستطيع أن أتكلم عن أي توزيعة أخرى (أو حتى نسخة CentOS) ولكن في حالتي المذكورة أعلاه يعمل تماما.

صدى "اختبار" | mailx -r fake@example.com -s 'اختبار' email@example.com

يعمل في اكبر برهان.

ما سمح لي أن يكون العرف الرد إلى عنوان Ubuntu 16.04 مع UTF-8 ترميز الملف المرفق:

تثبيت عميل البريد:

sudo apt-get install heirloom-mailx

تحرير تكوين SMTP:

sudo vim /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
FromLineOverride=YES
AuthUser=???@gmail.com
AuthPass=???
UseSTARTTLS=YES

وإرسال البريد الإلكتروني:

sender='send@domain.com'
recipient='recipient@domain.com'
zipfile="results/file.zip"
today=`date +\%d-\%m-\%Y`
mailSubject='My subject on the '$today
read -r -d '' mailBody << EOM
Find attached the zip file.

Regards,
EOM
mail -s "$mailSubject" -r "Name <$sender>" -S replyto="$sender" -a $zipfile $recipient < <(echo $mailBody)

أي من الحلول المذكورة أعلاه تعمل بالنسبة لي...

#!/bin/bash

# Message
echo "My message" > message.txt

# Mail
subject="Test"
mail_header="From: John Smith <john.smith@example.com>"
recipients="recipient@example.com"

#######################################################################
cat message.txt | mail -s "$subject" -a "$mail_header" -t "$recipients"

الإجابات المقدمة من قبل لم يعمل معي على CentOS5.أنا ركبت المغفل.انها لديها الكثير من الخيارات.مع المغفل كنت تفعل ذلك بهذه الطريقة:

export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top