SYNOPSIS

'git send-email' [<options>] (<file>|<directory>)...
'git send-email' [<options>] <format-patch-options>
'git send-email' --dump-aliases
'git send-email' --translate-aliases

DESCRIPTION

コマンドラインで指定されたパッチを取得し、電子メールで送信します。 パッチは、ファイルまたは、ディレクトリ(ディレクトリ内のすべてのファイルを送信します)または、リビジョンリストとして直接指定できます。 上記SYNOPSISの最後のケースでは、git-format-patch(1) によって受け入れられる任意のフォーマットと、git-format-patch(1) によって理解されるオプションを「git send-email」に渡すことができます。

電子メールのヘッダーは、コマンドラインオプションを使用して構成できます。 コマンドラインで指定されていない場合、ReadLine対応のインターフェイスでユーザーが必要な情報を提供するためのプロンプトが表示されます。

パッチファイルに使用できる形式は2つあります:

  1. mbox形式ファイル

    これは、 git-format-patch(1) が生成するものです。 ほとんどのヘッダーとMIMEフォーマットは無視されます。

  2. Greg Kroah-Hartman の send_lots_of_email.pl スクリプトで使用されたオリジナル形式

    この形式では、ファイルの1行目に「Cc:」値が含まれ、2行目としてメッセージの「Subject:」が含まれている必要があります。

OPTIONS

電子メール作成

--annotate

送信しようとしている各パッチを確認して編集します。 デフォルトは sendemail.annotate の値です。 `sendemail.multiEdit`の「CONFIGURATION」セクションを参照してください。

--bcc=<address>,...

メールごとに「Bcc:」の値を指定します。 デフォルトは sendemail.bcc の値です。

このオプションは複数回指定できます。

--cc=<address>,...

各電子メールの開始「Cc:」値(starting "Cc:" value)を指定します。 デフォルトは sendemail.cc の値です。

このオプションは複数回指定できます。

--compose

テキストエディタ(git-var(1)の GIT_EDITOR 参照)を呼び出して、パッチシリーズの紹介メッセージ(introductory message)を編集します。

--compose が使用される場合、 git send-email はメッセージ内で指定された From, To, Cc, Bcc, Subject, Reply-To, In-Reply-To ヘッダーを使用します。 メッセージの本文(ヘッダーと空行の後にあなたが入力する内容)が、 空行(または Git: で始まる行)のみを含む場合、 サマリーは送信されませんが、 上記のヘッダーは削除されない限り使用されます。

From ヘッダーまたは In-Reply-To ヘッダーが無い場合は、入力を促すプロンプトが表示されます。

sendemail.multiEdit の「CONFIGURATION」セクションを参照してください。

--from=<address>

電子メールの送信者(sender)を指定します。 コマンドラインで指定されていない場合は、sendemail.from 構成オプションの値が使用されます。 コマンドラインオプションも sendemail.from も設定されていない場合、ユーザーは値の入力を求められます。 そのプロンプトのデフォルトは、 git var -l によって返される、 GIT_AUTHOR_IDENT の値、または、 GIT_AUTHOR_IDENT が設定されていない場合は GIT_COMMITTER_IDENT の値になります。

--reply-to=<address>

受信者からの返信先(reply)のアドレスを指定します。 メッセージへの応答(reply)が --from パラメーターで指定されたものとは別のアドレスに送信される必要がある場合は、これを使用します。

--in-reply-to=<identifier>

最初のメール(または --no-thread 指定の全てのメール)を、指定の Message-ID への応答(reply)として表示します。これにより、スレッドが壊れて新しいパッチシリーズが提供されるのを防ぎます。 2回目以降のメールは、 --[no-]chain-reply-to 設定に従って返信(reply)として送信されます。

そのため、例えば --thread--no-chain-reply-to を指定すると、以下のように [PATCH v2 0/3] が [PATCH 0/2] に対する返信になるように、2番目以降のパッチは最初のパッチへの返信になります:

[PATCH 0/2] Here is what I did...
  [PATCH 1/2] Clean up and tests
  [PATCH 2/2] Implementation
  [PATCH v2 0/3] Here is a reroll
    [PATCH v2 1/3] Clean up
    [PATCH v2 2/3] New tests
    [PATCH v2 3/3] Implementation

--compose も設定されている場合のみ必要です。 --compose が設定されていない場合は、プロンプトが表示されます。

--outlook-id-fix
--no-outlook-id-fix

Microsoft Outlook の SMTP サーバーは、電子メールで送信された Message-ID を破棄して新しいランダムな Message-ID を割り当てるため、スレッドが壊れます。

--outlook-id-fix を指定すると、 git send-email は Outlook サーバー固有の仕組みを使って、サーバーが割り当てた Message-ID を取得し、スレッドを修正します。サーバーが書き換えた Message-ID を Outlook サーバーと同じ方法で報告することが分かっている場合にのみ使用してください。

このオプションを指定しない場合でも、smtp.office365.com または smtp-mail.outlook.com と通信するときはデフォルトで修正が行われます。これら 2 つのサーバーと通信するときも無効にするには --no-outlook-id-fix を使用してください。

--subject=<string>

メールスレッドの最初の件名を指定します。 --compose も設定されている場合にのみ必要です。 --compose が設定されていない場合、これはプロンプトが表示されます。

--to=<address>,...

生成された電子メールの主な受信者(primary recipient)を指定します。 通常、これは関連するプロジェクトの上流のメンテナになります。 デフォルトは、 sendemail.to 構成値の値です。 それが指定されておらず、 --to-cmd が指定されていない場合、プロンプトが表示されます。

このオプションは複数回指定できます。

--8bit-encoding=<encoding>

エンコードを宣言していない非ASCIIメッセージまたは件名に遭遇した場合は、 ヘッダー/引用符 を追加して、<encoding>でエンコードされていることを示します。 デフォルトは sendemail.assume8bitEncoding の値です。 それが指定されていない場合に非ASCIIファイルが検出された場合はプロンプトが表示されます。

注意:エンコーディングを検証する試みは一切行われないことに注意してください。

--compose-encoding=<encoding>

作成するッセージのエンコードを指定します。 デフォルトは sendemail.composeEncoding の値です。 それが指定されていない場合は、UTF-8 を想定します。

--transfer-encoding=(7bit|8bit|quoted-printable|base64|auto)

SMTP経由でメッセージを送信するために使用する転送エンコーディングを指定します。 非ASCIIメッセージに遭遇すると、 7bit は失敗します。 quoted-printable は、リポジトリにキャリッジリターンを含むファイルが含まれている場合に役立ちますが、生のパッチ電子メールファイル(MUAで保存されたもの)を手動で検査するのがとても難しくなります。 base64 はさらに確実ですが、さらに不透明です。 auto は、可能な場合は 8bit を使用し、それ以外の場合は quoted-printable を使用します。

デフォルトは、sendemail.transferEncoding 構成値です。 それが指定されていない場合、デフォルトは auto です。

--xmailer
--no-xmailer

X-Mailer: ヘッダーを追加(または追加を防止)します。 デフォルトでは追加されますが、 sendemail.xmailer 構成変数を false に設定することでオフにできます。

電子メール送信

--envelope-sender=<address>

メールの送信に使用するエンベロープ(envelope)の送信者を指定します。 これは、デフォルトのメールアドレスがメーリングリストに申し込まれているメールアドレスではない場合に役立ちます。 From アドレスを使用するには、値を auto に設定します。 sendmailバイナリを使用する場合は、 -f パラメータに適切な権限が必要です。 デフォルトは、 sendemail.envelopeSender 構成変数の値です。 それが指定されていない場合、エンベロープ送信者の選択はMTAに任されています。

--sendmail-cmd=<command>

電子メールを送信するために実行するコマンドを指定します。 コマンドはsendmailのようなものでなければなりません。 具体的には、 -i オプションをサポートする必要があります。 コマンドは、必要に応じてシェルで実行されます。 デフォルトは sendemail.sendmailCmd 構成の値です。 sendemail.sendmailCmd 構成の値が指定されていない場合、かつ、 --smtp-server も指定されていない場合、 git-send-email/usr/sbin/usr/lib$PATHsendmail を検索します。

--smtp-encryption=<encryption>

SMTP 接続の暗号化を開始する方法を指定します。有効な値は ssltls です。その他の値はプレーン(暗号化されていない) SMTP に戻り、デフォルトはポート 25 になります。 ssltls という名前に関係なく、どちらの値も同じ新しいバージョンの TLS を使用しますが、歴史的な理由からこれらの名前が付けられています。 ssl とは「暗黙的」暗号化 (しばしば SMTPS とも呼ばれる)を指し、デフォルトでポート 465 を使用します。 tls とは、デフォルトでポート 25 を使用する「明示的」暗号化(しばしば STARTTLS と呼ばれる)を指します。 SMTP サーバーでは他のポートが使用される場合がありますが、これはデフォルトではありません。一般的に TLS および暗号化されていない代替ポートは 587 です。プロバイダーのドキュメントまたはサーバー構成を確認して、自分の場合にに当てはまるかどうかを確認する必要があります。 デフォルトは sendemail.smtpEncryption の値です。

--smtp-domain=<FQDN>

SMTPサーバーへの HELO/EHLO コマンドで使用される完全修飾ドメイン名(FQDN)を指定します。 一部のサーバーでは、FQDNがIPアドレスと一致する必要があります。 設定されていない場合、 git send-email はFQDNを自動的に判別しようとします。 デフォルトは sendemail.smtpDomain の値です。

--smtp-auth=<mechanisms>

許可されたSMTP-AUTHメカニズムの空白で区切られた(Whitespace-separated)リスト。 この設定は、リストされたメカニズムのみを使用するように強制します。 例:

$ git send-email --smtp-auth="PLAIN LOGIN GSSAPI" ...

指定されたメカニズムの少なくとも1つがSMTPサーバによって宣伝(advertise)されたメカニズムと一致し、利用されるSASLライブラリによってサポートされている場合、そのメカニズムが認証に使用されます。 sendemail.smtpAuth--smtp-auth のどちらも指定されない場合、SASL ライブラリでサポートされているすべてのメカニズムが使用される可能性があります。 特別な値として none を指定すると、 --smtp-user と独立して認証を完全に無効にすることができます。

--smtp-pass[=<password>]

SMTP-AUTHのパスワード。 引数はオプションです。引数が指定されていない場合は、空の文字列がパスワードとして使用されます。 デフォルトは sendemail.smtpPass の値ですが、 --smtp-pass は常に sendemail.smtpPass の値を上書きします。

さらに、パスワードを設定ファイルやコマンドラインで指定する必要はありません。ユーザー名が(--smtp-user または sendemail.smtpUser で)指定されている一方で、パスワードが(--smtp-pass または sendemail.smtpPass で)指定されていない場合は、git-credential(1) を使ってパスワードを取得します。

--no-smtp-auth

SMTP認証を無効にします。 --smtp-auth=none の省略形

--smtp-server=<host>

設定されている場合、使用する送信SMTPサーバを指定します(例: smtp.example.com または生のIPアドレス)。 これが未指定の場合で、かつ、 --sendmail-cmd も未指定の場合、デフォルトでは /usr/sbin/usr/lib$PATH にある sendmail を探します。それが存在しなければ localhost にフォールバックされます。

下位互換性のために、このオプションでは、代わりにsendmailのようなプログラムの絶対パス名を指定することもできます。 プログラムは -i オプションをサポートする必要があります。 このメソッドは、引数の受け渡しや平文コマンド名の使用をサポートしていません。 これらの場合には、代わりに --sendmail-cmd の使用を検討してください。

--smtp-server-port=<port>

デフォルトのポートとは異なるポートを指定します(SMTP サーバーは通常 smtp ポート 25 をリッスンしますが、submission ポート 587 や、一般的な SSL smtp ポート 465 をリッスンする場合もあります)。シンボリックなポート名(例: 587 の代わりに submission)も受け付けます。ポートは sendemail.smtpServerPort 設定変数でも設定できます。

--smtp-server-option=<option>

設定されている場合、使用する送信SMTPサーバーオプションを指定します。 デフォルト値は、 sendemail.smtpServerOption 構成オプションで指定できます。

--smtp-server-option オプションは、サーバーに渡したいオプションごとに繰り返し指定する必要があります。同様に、設定ファイルでもオプションごとに別の行を使用する必要があります。

--smtp-ssl

--smtp-encryption ssl のレガシーなエイリアスです。

--smtp-ssl-cert-path

SMTP SSL/TLS 証明書検証のための、信頼された CA 証明書ストアへのパスです( c_rehash によって処理されたディレクトリ、または 1 つ以上の PEM 形式証明書を連結した単一ファイル。これらについての詳細は https://docs.openssl.org/master/man1/openssl-verify/ [OpenSSL の verify(1) マニュアルページ] の -CAfile <file> および -CApath <dir> オプションの説明を参照してください)。証明書検証を無効にするには空文字列を設定します。デフォルトは、設定されていれば sendemail.smtpSSLCertPath 設定変数の値、そうでなければ基盤となる SSL ライブラリにコンパイル時に組み込まれたデフォルト値です(ほとんどのプラットフォームで最良の選択になるはずです)。

--smtp-user=<user>

SMTP-AUTHのユーザー名。 デフォルトは sendemail.smtpUser の値です。 (--smtp-user または sendemail.smtpUser で)ユーザー名が指定されていない場合、認証は試行されません。

--smtp-debug=(0|1)

デバッグ出力を有効(1)または無効(0)にします。 有効にすると、SMTPコマンドとその応答が出力されます。 TLS接続と認証の問題をデバッグするのに役立ちます。

--imap-sent-folder=<folder>

一部のメールプロバイダー(例: iCloud)では、SMTP を使って送信したメールのコピーが、メールボックス内の Sent フォルダーなどに保存されません。このオプションを使うと、git imap-send を使って、指定したフォルダーへメールのコピーを送信します。git imap-send --list を実行すると、メールボックス内の Sent フォルダーの正しい名前を含む、有効なフォルダー名の一覧を取得できます。また、このオプションを使って、任意の専用 IMAP フォルダーへメールを送ることもできます。

この機能を使うには git imap-send の設定が必要です。手順は git-imap-send(1) を参照してください。

--use-imap-only
--no-use-imap-only

これを設定すると、すべてのメールは --imap-sent-folder または sendemail.imapSentFolder で指定した IMAP フォルダーにのみコピーされ、受信者には送信されません。メールの下書きだけを作成し、別のメールクライアントを使って送信したい場合に便利です。--no-use-imap-only で無効にすると、メールは通常どおり送信されます。デフォルトでは無効ですが、sendemail.useImapOnly 設定変数を使って有効にできます。

+ この機能を使うには git imap-send の設定が必要です。手順は git-imap-send(1) を参照してください。

--batch-size=<num>

一部のメールサーバー(例: smtp.163.com)は、セッション(接続)あたりに送信できるメール数を制限しており、多数のメッセージを送ると失敗することがあります。このオプションを使うと、send-email は <num> 通送信した後に切断し、数秒待って( --relogin-delay を参照)再接続することで、この制限を回避します。これが起きるたびにパスワードを再入力しなくて済むよう、何らかのクレデンシャルヘルパーを使うとよいでしょう。デフォルトは sendemail.smtpBatchSize 設定変数です。

--relogin-delay=<int>

SMTP サーバーへ再接続する前に <int> 秒待機します。 --batch-size オプションと併せて使用します。デフォルトは sendemail.smtpReloginDelay 設定変数です。

自動化

--no-to
--no-cc
--no-bcc

設定で以前に指定した To:Cc:Bcc: アドレスのリストをすべてクリアします。

--no-identity

configで設定された sendemail.identity から読み取られた値があるならば、その値をクリアします。

--to-cmd=<command>

パッチファイルごとに 1 回実行するコマンドを指定し、パッチファイル固有の To: エントリを生成するようにします。このコマンドの出力は 1 行につき 1 つのメールアドレスでなければなりません。デフォルトは sendemail.toCmd 設定値です。

--cc-cmd=<command>

パッチファイルごとに 1 回実行するコマンドを指定し、パッチファイル固有の Cc: エントリを生成するようにします。このコマンドの出力は 1 行につき 1 つのメールアドレスでなければなりません。デフォルトは sendemail.ccCmd 設定値です。

--header-cmd=<command>

送信メッセージごとに 1 回実行され、挿入する RFC 2822 形式のヘッダー行を出力するコマンドを指定します。 sendemail.headerCmd 設定変数が設定されている場合、その値が常に使用されます。コマンドラインで --header-cmd を指定した場合、その値は sendemail.headerCmd 設定変数よりも優先されます。

--no-header-cmd

使用中のヘッダー・コマンドを無効にします。

--chain-reply-to
--no-chain-reply-to

これが設定されている場合、各メールは前に送信されたメールへの返信として送信されます。 --no-chain-reply-to で無効にすると、最初のメール以降のすべてのメールが、最初に送信したメールへの返信として送信されます。これを使用する場合、最初に与えるファイルはパッチシリーズ全体の概要であることが推奨されます。デフォルトでは無効になっていますが、sendemail.chainReplyTo 設定変数を使用して有効にできます。

--identity=<identity>

設定ID。指定すると、sendemail.<identity> サブセクションの値が sendemail セクションの値よりも優先されます。デフォルトのIDは sendemail.identity の値です。

--signed-off-by-cc
--no-signed-off-by-cc

これが設定されている場合、Signed-off-by トレーラーまたは Cc: 行で見つかったメールアドレスを cc リストに追加します。デフォルトは sendemail.signedOffByCc 設定値です。これが未指定の場合、デフォルトは --signed-off-by-cc になります。

--cc-cover
--no-cc-cover

これが設定されている場合、シリーズの最初のパッチ(通常はカバーレター)の Cc: ヘッダーで見つかったメールアドレスが、各メールの cc リストに追加されます。デフォルトは sendemail.ccCover 設定値です。これが未指定の場合、デフォルトは --no-cc-cover になります。

--to-cover
--no-to-cover

これが設定されている場合、シリーズの最初のパッチ(通常はカバーレター)の To: ヘッダーで見つかったメールアドレスが、各メールの to リストに追加されます。デフォルトは sendemail.toCover 設定値です。これが未指定の場合、デフォルトは --no-to-cover になります。

--suppress-cc=<category>

自動CC(auto-cc)を抑制するために、以下の追加受信者カテゴリを指定します:

  • author は、パッチの作者を含めないようにします。

  • self は送信者を含めないようにします。

  • cc は、self を除き(その場合は self を使用します)、パッチヘッダー内の Cc 行で言及されている人を含めないようにします。

  • bodycc は、self を除き(その場合は self を使用します)、パッチ本体(コミットメッセージ)内の Cc 行で言及されている人を含めないようにします。

  • sob は、self を除き(その場合は self を使用します)、Signed-off-by トレーラーで言及されている人を含めないようにします。

  • misc-by は、Signed-off-by を除き(それには sob を使用します)、パッチ本体にある Acked-by、Reviewed-by、Tested-by およびその他の "-by" 行で言及されている人を含めないようにします。

  • cccmd は、--cc-cmd を実行しないようにします。

  • bodysob + bodycc + misc-by と同じです。

  • all は、すべての自動 cc 値を抑制します。

デフォルトは sendemail.suppressCc 設定値です。sendemail.suppressCc が未指定の場合、--suppress-from が指定されていればデフォルトは self となり、--no-signed-off-cc が指定されていれば body もデフォルトになります。

--suppress-from
--no-suppress-from

これが設定されている場合、 From: アドレスを Cc: リストに追加しません。デフォルトは sendemail.suppressFrom 設定値です。これが未指定の場合、デフォルトは --no-suppress-from になります。

--thread
--no-thread

これが設定されている場合、送信される各メールに In-Reply-To および References ヘッダーが追加されます。各メールが前のメールを参照するか(git format-patch の文言に従った deep スレッディング)、最初のメールを参照するか(shallow スレッディング)は、 --[no-]chain-reply-to によって制御されます。

--no-thread で無効にすると、それらのヘッダーは追加されません(--in-reply-to で指定されている場合を除きます)。デフォルトは sendemail.thread 設定値です。これが未指定の場合、デフォルトは --thread になります。

git send-email に In-Reply-To ヘッダーの追加を指示したときに、In-Reply-To ヘッダーがすでに存在しないことを確認するのはユーザーの責任です(特に、git format-patch はそれ自体でスレッド化するように設定できることに注意してください)。これを怠ると、受信者の MUA で期待どおりの結果にならないことがあります。

--mailmap
--no-mailmap

mailmap ファイル(gitmailmap(5) 参照)を使用して、すべてのアドレスを正規の実名とメールアドレスにマッピングします。git send-email 固有の追加の mailmap データは sendemail.mailmap.file または sendemail.mailmap.blob 設定値を使って提供できます。デフォルトは sendemail.mailmap です。

管理

--confirm=<mode>

送信する直前に確認(confirm)します:

  • always は送信前に常に確認します。

  • never は送信前に確認しません。

  • cc は、send-email がパッチから Cc リストにアドレスを自動的に追加した場合に、送信前に確認します。

  • compose は、 --compose を使用している場合に、最初のメッセージを送信する前に確認します。

  • autocc + compose と同じです。

デフォルトは sendemail.confirm 設定値です。これが未指定の場合、抑制オプションのいずれかが指定されていない限りデフォルトは auto で、指定されている場合はデフォルトが compose になります。

--dry-run

実際にメールを送信する以外はすべて行います。

--format-patch
--no-format-patch

引数が参照としてもファイル名としても解釈できる場合、それを format-patch 引数(--format-patch)として解釈するか、ファイル名(--no-format-patch)として解釈するかを選択します。デフォルトでは、このような競合が発生すると git send-email は失敗します。

--quiet

git send-email の出力を少なくします。出力されるのはメール 1 通につき 1 行だけになるはずです。

--validate
--no-validate

パッチの健全性チェックを実行します。 現状、検証(validation)とは以下のことを意味します:

  • sendemail-validate フックが存在する場合はそれを呼び出します(githooks(5) 参照)。

  • 以下より長い行を含むパッチについて警告します 適切な転送エンコーディング (auto, base64, または quoted-printable)が使用されていない場合は 998 文字です; これは https://www.ietf.org/rfc/rfc5322.txt. で説明されている SMTP の制限によるものです。

デフォルトは sendemail.validate の値です。 これが設定されていない場合、デフォルトは --validate になります。

--force

安全チェックで防止できる場合でも、電子メールを送信してください。

情報

--dump-aliases

通常の動作の代わりに、設定されたエイリアスファイルから短縮エイリアス名をダンプし、アルファベット順に 1 行に 1 つずつ出力します。これにはエイリアス名のみが含まれ、展開後のメールアドレスは含まれないことに注意してください。エイリアスの詳細は sendemail.aliasesFile を参照してください。

--translate-aliases

通常の動作の代わりに標準入力から読み込み、各行をメールエイリアスとして解釈します。設定されたエイリアスファイルに従って変換します。変換後の名前とメールアドレスを標準出力に 1 行ずつ出力します。エイリアスの詳細は sendemail.aliasFile を参照してください。

CONFIGURATION

このセクションの以下のすべては、 git-config(1) ドキュメントの抜粋です。 内容は git-config(1) ドキュメント にあるものと同一です:

sendemail.identity

構成ID。 指定すると、 sendemail.<identity> サブセクションの値が sendemail セクションの値よりも優先されます。 デフォルトのIDは、 `sendemail.identity`の値です。

sendemail.smtpEncryption

説明については、 git-send-email(1) を参照してください。 注意: この設定は identity メカニズムの対象ではないことに注意してください。

sendemail.smtpSSLCertPath

ca-certificatesへのパス(ディレクトリまたは単一ファイルのどちらか)。 証明書の検証を無効にするには、空の文字列に設定します。

sendemail.<identity>.*

以下の sendemail.* パラメータのID固有のバージョン。コマンドラインまたは sendemail.identity のいずれかを使用して、このIDが選択された場合のパラメータよりも優先されます。

sendemail.multiEdit

true (デフォルト) の場合、編集する必要があるファイルを編集するために単一のエディター・インスタンスが生成されます(--annotate が使用されている場合はパッチ、 --compose が使用されている場合は要約)。 false の場合、ファイルは次々に編集され、そのたびに新しいエディター・インスタンスが生成されます。

sendemail.confirm

送信前に確認するかどうかのデフォルトを設定します。 always または never または cc または compose または auto のいずれかでなければなりません。 これらの値の意味については、 git-send-email(1) ドキュメントの --confirm を参照してください。

sendemail.mailmap

true の場合 git-send-email(1)--mailmap を想定し、 それ以外の場合は --no-mailmap を想定します。 デフォルトでは false です。

sendemail.mailmap.file

git-send-email(1) 固有の拡張メールマップ(mailmap)・ファイルの場所。 デフォルトのメールマップと mailmap.file が最初にロードされます。 したがって、 このファイル内のエントリは、 デフォルトのメールマップの場所(locations)内のエントリよりも優先されます。 gitmailmap(5) を参照してください。

sendemail.mailmap.blob

sendemail.mailmap.file と似ていますが、 値はリポジトリ内の BLOB への参照として考慮されます。 sendemail.mailmap.file 内のエントリは、 このエントリより優先されます。 gitmailmap(5) を参照してください。

sendemail.aliasesFile

長い電子メール・アドレスのタイピングを回避するには、1 つまたは複数の電子メール・エイリアス・ファイルを指定します。 sendemail.aliasFileType も指定する必要があります。

sendemail.aliasFileType

sendemail.aliasesFile で指定されたファイルの形式。 mutt, mailrc, pine, elm, gnus, sendmail のいずれかでなければなりません。

各形式のエイリアス・ファイルがどのようなものかは、同名の電子メール・プログラムのドキュメントに記載されています。 標準フォーマットとの相違点と制限事項は以下のとおりです:

sendmail
  • 引用エイリアス(quoted aliases)と引用アドレス(quoted addresses)はサポートされていません。 " 記号を含む行は無視されます。

  • ファイル(/path/name)またはパイプ(|command)へのリダイレクトはサポートされていません。

  • ファイル・インクルード(:include: /path/name)はサポートされていません。

  • 明示的にサポートされていない構造(constructs)、およびパーサーによって認識されないその他の行については、警告が標準エラー出力に出力されます。

sendemail.annotate
sendemail.bcc
sendemail.cc
sendemail.ccCmd
sendemail.chainReplyTo
sendemail.envelopeSender
sendemail.from
sendemail.headerCmd
sendemail.signedOffByCc
sendemail.smtpPass
sendemail.suppressCc
sendemail.suppressFrom
sendemail.to
sendemail.toCmd
sendemail.smtpDomain
sendemail.smtpServer
sendemail.smtpServerPort
sendemail.smtpServerOption
sendemail.smtpUser
sendemail.imapSentFolder
sendemail.useImapOnly
sendemail.thread
sendemail.transferEncoding
sendemail.validate
sendemail.xmailer

これらの構成変数はすべて、git-send-email(1) コマンドライン・オプションのデフォルトを提供します。 詳細については、そのドキュメントを参照してください。

sendemail.outlookidfix

true に設定すると、 git-send-email(1)--outlook-id-fix を指定したものとみなします。 false に設定すると、 --no-outlook-id-fix を指定したものとみなします。 指定されていない場合、 --outlook-id-fix を指定しなかった場合と同一の振る舞いになります。

sendemail.signedOffCc (非推奨)

sendemail.signedOffByCc の非推奨のエイリアス。

sendemail.smtpBatchSize

接続ごとに送信されるメッセージの数。その後、再ログインが発生します。 値が 0 または未定義の場合、すべてのメッセージを1つの接続で送信します。 git-send-email(1)--batch-size オプションも参照してください。

sendemail.smtpReloginDelay

SMTP サーバーに再接続する前に待機する秒数。 git-send-email(1)--relogin-delay オプションも参照してください。

sendemail.forbidSendmailVariables

一般的な設定ミスを回避するために、 git-send-email(1) は、 sendmail の設定オプションが存在する場合、警告とともに中止します。 チェックをバイパスするには、この変数を設定します。

EXAMPLES OF SMTP SERVERS

Gmail を SMTP サーバーとして使用する

git send-email を使って Gmail SMTP サーバー経由でパッチを送信するには、~/.gitconfig を編集してアカウント設定を指定します:

[sendemail]
        smtpEncryption = ssl
        smtpServer = smtp.gmail.com
        smtpUser = yourname@gmail.com
        smtpServerPort = 465

Gmail では git send-email に通常のパスワードを使用できません。Gmail アカウントで多要素認証を設定している場合、 git send-email 用のアプリ固有パスワードを生成できます。作成するには https://security.google.com/settings/security/apppasswords にアクセスしてください。

別の方法として、アプリ固有パスワードを使う代わりに、Gmail で OAuth2.0 認証を使用できます。OAuth2.0 はアプリ固有パスワードより安全で、多要素認証を設定しているかどうかに関係なく動作します。 OAUTHBEARERXOAUTH2 は、この種の認証で一般的に使われる仕組みです。Gmail は両方をサポートしています。例として OAUTHBEARER を使いたい場合、~/.gitconfig を編集し、アカウント設定に smtpAuth = OAUTHBEARER を追加します:

[sendemail]
        smtpEncryption = ssl
        smtpServer = smtp.gmail.com
        smtpUser = yourname@gmail.com
        smtpServerPort = 465
        smtpAuth = OAUTHBEARER

別の代替手段として、Google が開発した sendgmail というツールを使って、git send-email でメールを送信する方法もあります。

Use Microsoft Outlook as the SMTP Server

Gmail とは異なり、Microsoft Outlook はアプリ固有パスワードをサポートしなくなりました。そのため、Outlook では OAuth2.0 認証を使用する必要があります。また、サポートされる認証メカニズムは XOAUTH2 のみです。

~/.gitconfig を編集して Outlook 用のアカウント設定を指定し、git send-email でその SMTP サーバーを使用します:

[sendemail]
        smtpEncryption = tls
        smtpServer = smtp.office365.com
        smtpUser = yourname@outlook.com
        smtpServerPort = 587
        smtpAuth = XOAUTH2

SENDING PATCHES

あなたのコミットをメーリングリストに送信する準備ができたら、以下のコマンドを実行します:

$ git format-patch --cover-letter -M origin/master -o outgoing/
$ edit outgoing/0000-*
$ git send-email outgoing/*

初めて実行すると、資格情報の入力を求められます。必要に応じて、アプリ固有パスワードまたは通常のパスワードを入力します。

クレデンシャルヘルパーを設定している場合(git-credential(1) 参照)、パスワードはクレデンシャルストアに保存され、次回入力する必要はありません。

OAuth2.0 認証を使用している場合、入力を求められたらパスワードの代わりにアクセストークンを使用する必要があります。OAuth2.0 トークンジェネレーターはオンラインでさまざまなものが利用できます。コミュニティにより保守されているクレデンシャルヘルパーもあります:

  • git-credential-gmail (クロスプラットフォームで、Gmail アカウントの認証専用のヘルパーです)

  • git-credential-outlook (クロスプラットフォームで、Microsoft Outlook アカウントの認証専用のヘルパーです)

  • git-credential-yahoo (クロスプラットフォームで、Yahoo アカウントの認証専用のヘルパーです)

  • git-credential-aol (クロスプラットフォームで、AOL アカウントの認証専用のヘルパーです)

OAuth ベースの認証ヘルパーについては、さらに gitcredentials(7) も参照してください。

Proton Mail は、メール送信用の SMTP サーバーを提供していません。Proton Mail の有料顧客であれば、Proton Mail が公式に提供している Proton Mail Bridge を使用して、メール送信のためのローカル SMTP サーバーを作成できます。無料ユーザー/有料ユーザーのいずれの場合も、コミュニティで保守されている git-protonmail のようなプロジェクトを使用できます。

注: Perl の配布物とともにインストールされている場合がある、以下の Perl のコアモジュールが必要です:

さらに、以下の Perl モジュールも必要です:

Authen::SASL および Mail::Address です。

Exploiting the sendmailCmd option of git send-email

SMTP サーバー経由でメールを送信する以外にも、git send-email は sendmail 風のコマンドをサポートする任意のアプリケーションを介してメールを送信できます。詳細は上記の --sendmail-cmd=<command> のドキュメントを参照してください。この機能は、git send-email の SMTP クライアントとして別のアプリケーションを使いたい場合や、メールプロバイダーが SMTP ではなく独自 API を用いてメールを送信する場合に非常に便利です。

例として、多くの Linux ディストリビューションで利用できる人気の SMTP クライアント msmtp の設定方法を見てみましょう。~/.gitconfig を編集して、メール送信にそれを使用するよう git-send-email に指示します。

[sendemail]
        sendmailCmd = /usr/bin/msmtp # Change this to the path where msmtp is installed

このようなコミュニティで保守されているヘルパーへのリンクをいくつか示します:

  • msmtp (多機能な人気の SMTP クライアントで、Linux と macOS で利用できます)

  • git-protonmail (ProtonMail API を使ってメールを送信できるクロスプラットフォームのクライアントです)

  • git-msgraph (Microsoft Graph API を使ってメールを送信できるクロスプラットフォームのクライアントです)

SEE ALSO

GIT

Part of the git(1) suite