96

を使用してUnixコマンドラインからメッセージを送信すると、からmail TO_ADDRの電子メールが送信され$USER@$HOSTNAMEます。によって挿入された「From:」アドレスを変更する方法はありmailますか?

記録のために、私はUbuntuでGNU Mailutils 1.1 / 1.2を使用しています(ただし、FedoraとRHELでも同じ動作が見られます)。

[編集]

$mail-sテストchris@example.org                                                                  
Cc:
差出人:foo@bar.org

テスト
。

収量

件名:テスト
宛先:<chris@example.org>
X-Mailer:メール(GNU Mailutils 1.1)
メッセージID:<E1KdTJj-00025z-RK @ localhost>
差出人:<chris @ localhost>
日付:2008年9月10日水曜日13:17:23 -0400

差出人:foo@bar.org

テスト

「From:foo@bar.org」行はメッセージ本文の一部であり、ヘッダーの一部ではありません。

4

20 に答える 20

114

私のバージョンのメール (Debian linux 4.0) では、送信元/返信アドレスを制御するために次のオプションが機能します。

  • -aスイッチ。追加のヘッダーを適用して、コマンド ラインで送信メール ヘッダーに追加される From: ヘッダーを指定します。
  • $REPLYTO環境変数はReply-To: ヘッダーを指定します

したがって、次のシーケンス

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

その結果、私のメール クライアントでは、cms-sends@example.com からのメールが返されます。これに対する返信は、デフォルトで cms-replies@example.com になります。

注意: Mac OS ユーザー: -a はありませんが、$REPLYTOはあります

NB(2): CentOS ユーザー、多くのコメント投稿者は、使用する必要があると追加しました-r-a

NB(3):この回答は少なくとも 10 年前のものです(1)。Google から来るときはそのことを覚えておいてください。

于 2008-12-19T10:09:18.020 に答える
42

Centos 5.3 では、次のことができます。

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

二重ダッシュは、mail が -f 引き数を解析するのを止め、それを sendmail 自体に渡します。

于 2010-01-13T18:04:57.533 に答える
28

GNU mailutils の「mail」コマンドでは、これを行うことはできません (少なくとも簡単に)。しかし、'heirloom-mailx' をインストールすると、そのメール コマンド (mailx) には、フィールドからのデフォルトの '$USER@$HOSTNAME' を上書きする '-r' オプションがあります。

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

「mailx」では機能しますが、「mail」では機能しません。

$ 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
于 2010-12-23T13:53:34.180 に答える
15
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

上記は私の解決策です....送信元の直後と返信の前に追加のヘッダーを追加できます...追加する前にヘッダーの構文を知っていることを確認してください....これは私にとって完璧に機能しました。

于 2012-07-25T18:35:55.493 に答える
4

ここにいくつかのオプションがあります:

  • 十分な特権がある場合は、genericsテーブルを使用して書き換えを行うようにsendmailを構成します

  • ヘッダー全体を自分で作成します(または、自分宛てにメールで送信し、メッセージ全体をすべてのヘッダーとともに保存し、再編集して、コマンドラインからrmailで送信します)。

  • sendmailで直接送信し、「-f」コマンドラインフラグを使用し、メッセージに「From:」行を含めないでください

これらはすべて完全に同じではありませんが、さらに詳しく調べることにします。

私のポータブルでは、送信メールサーバーへのクライアントとして認証するsendmailがあり、ジェネリックを使用して返信メールを別のアカウントに送信します。それは魅力のように機能します。受信メールをfetchmailで集約します。

于 2008-09-10T17:16:29.627 に答える
4

上記のすべての回答からこれを導き出しました。それぞれを試してみたところ、何もうまくいきませんでした。上記のすべての回答を組み合わせて多くの試行錯誤を行い、これで結論付けました。これがうまくいくかどうかはわかりませんが、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>'

任意の数の受信者 ID を追加することで、任意の数の人にメールを送信できます。メールはfrom-id@email.comSenderNameによって送信されます。

お役に立てれば。

于 2014-09-30T07:04:29.087 に答える
3

ありがとうBEAU

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

私はこれを見つけたばかりで、私にとってはうまくいきます。CentOS 5 のメール 8.1 のマニュアル ページでは、これについて言及されていません。-fオプションについては、マニュアルページに次のように記載されています。

-f システム メールボックスの代わりに、file オペランドで指定されたファイルからメッセージを読み取ります。(「folder」も参照してください。) file オペランドが指定されていない場合は、システム メールボックスの代わりに mbox からメッセージを読み取ります。

とにかく、これを見つけるのは素晴らしいことです、ありがとう。

于 2011-05-25T02:27:47.733 に答える
3

Debian 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")
于 2015-03-01T01:11:10.317 に答える
3

他のOSでも同じかどうかはわかりませんが、OpenBSDではmailコマンドはこんな構文になっています。

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

sendmail には、FROM: フィールドに電子メール アドレスを指定する -f オプションがあります。次のコマンドは私にとってはうまくいきます。

mail recepient@example.com -f from@example.com
于 2011-05-25T12:31:21.470 に答える
2

CentOSでは、これでうまくいきました:

echo "email body" | mail -s "Subject here" -r from_email_address email_address_to
于 2014-02-18T14:13:15.743 に答える
1

エコー "テスト" | mailx -r fake@example.com -s 'test' email@example.com

OpenBSD で動作します。

于 2016-07-20T13:55:25.673 に答える
0

CentOS 5.5 では、ドメインからデフォルトを設定する最も簡単な方法は、hosts ファイルを変更することです。ホスト ファイルに WAN/パブリック IP アドレスが含まれている場合は、リストされている最初のホスト名を変更するだけです。たとえば、hosts ファイルは次のようになります。

...
11.22.33.44 localhost デフォルト ドメインwhatever-else.com
...

whatthing-else.com から送信するには、whatever-else.com が最初にリストされるように変更します。次に例を示します。

...
11.22.33.44whatever-else.com localhostデフォルト ドメイン
...

他のディストリビューション (または CentOS のバージョン) について話すことはできませんが、私の特定のケースでは、上記は完全に機能します。

于 2011-11-10T23:15:22.790 に答える
0

これは私のために働いた

echo "hi root"|mail -rsawrub@testingdomain.org -s'testinggg' root
于 2009-08-30T07:33:44.103 に答える