日本語 ▾ トピック ▾ 最新バージョン ▾ git-send-email は 2.50.0 で最終更新されました

名前

git-send-email - パッチのコレクションをメールとして送信する

概要

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

説明

コマンドラインで指定されたパッチを取得し、それらをメールで送信します。パッチはファイル、ディレクトリ (ディレクトリ内のすべてのファイルが送信されます)、または直接リビジョンリストとして指定できます。後者の場合、git-format-patch[1] が受け入れる任意の形式を git send-email に渡すことができ、git-format-patch[1] が理解するオプションも渡すことができます。

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

パッチファイルには2つの形式が受け入れられます。

  1. mbox 形式ファイル

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

  2. Greg Kroah-Hartman の send_lots_of_email.pl スクリプトで使用されていた元の形式

    この形式では、ファイルの最初の行に "Cc:" の値、2行目にメッセージの "Subject:" が含まれることを想定しています。

オプション

作成

--annotate

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

--bcc=<address>,…​

各メールの "Bcc:" 値を指定します。デフォルトは sendemail.bcc の値です。

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

--cc=<address>,…​

各メールの初期 "Cc:" 値を指定します。デフォルトは sendemail.cc の値です。

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

--compose

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

--compose が使用されると、git send-email はメッセージで指定された From、To、Cc、Bcc、Subject、Reply-To、および In-Reply-To ヘッダーを使用します。メッセージの本文 (ヘッダーと空白行の後に記述する内容) が空白行 (または Git: プレフィックス付きの行) のみを含む場合、要約は送信されませんが、上記で言及されたヘッダーは削除されない限り使用されます。

From または In-Reply-To ヘッダーが欠落している場合、プロンプトが表示されます。

sendemail.multiEdit については CONFIGURATION セクションを参照してください。

--from=<address>

メールの送信者を指定します。コマンドラインで指定されない場合、sendemail.from 設定オプションの値が使用されます。コマンドラインオプションも sendemail.from も設定されていない場合、ユーザーに値のプロンプトが表示されます。プロンプトのデフォルトは、「git var -l」によって返される GIT_AUTHOR_IDENT の値、またはそれが設定されていない場合は GIT_COMMITTER_IDENT の値です。

--reply-to=<address>

受信者からの返信が送られるアドレスを指定します。メッセージへの返信を --from パラメータで指定されたアドレスとは異なるアドレスに送る必要がある場合に使用します。

--in-reply-to=<identifier>

最初のメール(または --no-thread の場合はすべてのメール)が、指定された Message-ID への返信として表示されるようにします。これにより、スレッドが中断されずに新しいパッチシリーズが提供されます。2番目以降のメールは、--[no-]chain-reply-to 設定に従って返信として送信されます。

したがって、たとえば --thread--no-chain-reply-to が指定されている場合、2番目以降のパッチは、下の図のように最初のパッチへの返信として送信されます。[PATCH v2 0/3][PATCH 0/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 が設定されていない場合、プロンプトが表示されます。

--[no-]outlook-id-fix

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

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

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

--subject=<string>

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

--to=<address>,…​

生成されるメールの主要な受信者を指定します。通常、これは関連プロジェクトのアップストリームメンテナーになります。デフォルトは 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経由でメッセージを送信するために使用する転送エンコーディングを指定します。7bitは非ASCIIメッセージに遭遇すると失敗します。quoted-printableはリポジトリにキャリッジリターンを含むファイルがある場合に役立ちますが、生のパッチメールファイル(MUAから保存されたもの)を手動で検査するのがはるかに難しくなります。base64はさらに確実ですが、さらに不透明です。autoは可能な場合は8bitを使用し、それ以外の場合はquoted-printableを使用します。

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

--xmailer
--no-xmailer

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

送信中

--envelope-sender=<address>

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

--sendmail-cmd=<command>

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

--smtp-encryption=<encryption>

SMTP接続の暗号化の開始方法を指定します。有効な値は ssltls です。その他の値はプレーン(非暗号化)SMTPに戻り、デフォルトはポート25です。名前にもかかわらず、どちらの値も同じ新しいバージョンのTLSを使用しますが、歴史的な理由でこれらの名前が付けられています。ssl は「暗黙的」な暗号化(SMTPSとも呼ばれます)を指し、デフォルトでポート465を使用します。tls は「明示的」な暗号化(STARTTLSとしてよく知られています)を指し、デフォルトでポート25を使用します。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メカニズムの空白区切りリスト。この設定により、リストされたメカニズムのみを使用するように強制されます。例:

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

指定されたメカニズムの少なくとも1つがSMTPサーバーによってアドバタイズされたメカニズムと一致し、それが利用されているSASLライブラリによってサポートされている場合、そのメカニズムが認証に使用されます。sendemail.smtpAuth--smtp-auth も指定されていない場合、SASLライブラリによってサポートされているすべてのメカニズムを使用できます。特殊な値 none は、--smtp-user とは無関係に認証を完全に無効にするために指定できます。

--smtp-pass[=<password>]

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

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

--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_によって処理されたディレクトリ、または複数のPEM形式証明書が連結された単一ファイル。詳細についてはverify(1) -CAfileおよび-CApathを参照)。証明書検証を無効にするには空文字列に設定します。設定されている場合、sendemail.smtpSSLCertPath 設定変数の値がデフォルトとなり、設定されていない場合は、バックエンドのSSLライブラリにコンパイルされたデフォルトが使用されます(ほとんどのプラットフォームで最良の選択肢となるはずです)。

--smtp-user=<user>

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

--smtp-debug=(0|1)

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

--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

config を介して以前に設定された "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

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

--[no-]chain-reply-to

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

--identity=<identity>

設定識別子。指定すると、コマンドラインまたは sendemail.identity のいずれかを通じてこの識別子が選択された場合、sendemail.<identity> サブセクションの値が sendemail セクションの値よりも優先されます。デフォルトの識別子は sendemail.identity の値です。

--[no-]signed-off-by-cc

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

--[no-]cc-cover

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

--[no-]to-cover

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

--suppress-cc=<category>

自動CCの抑制対象となる追加の受信者カテゴリを指定します。

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

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

  • cc はパッチヘッダーの Cc 行に記載されている人(自身を除く。自身の場合は self を使用)を含まないようにします。

  • bodycc はパッチ本文(コミットメッセージ)の Cc 行に記載されている人(自身を除く。自身の場合は self を使用)を含まないようにします。

  • sob は Signed-off-by トレーラーに記載されている人(自身を除く。自身の場合は self を使用)を含まないようにします。

  • misc-by は Acked-by、Reviewed-by、Tested-by、およびパッチ本文のその他の "-by" 行に記載されている人(Signed-off-by を除く。Signed-off-by の場合は sob を使用)を含まないようにします。

  • cccmd は --cc-cmd の実行を回避します。

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

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

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

--[no-]suppress-from

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

--[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 で期待される結果が得られない場合があります。

--[no-]mailmap

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

管理

--confirm=<mode>

送信直前に確認する

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

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

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

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

  • autocc + compose と同等です。

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

--dry-run

実際にメールを送信することを除き、すべてを実行します。

--[no-]format-patch

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

--quiet

git-send-email の冗長性を抑えます。メールあたり1行のみが出力されるはずです。

--[no-]validate

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

  • 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 を参照してください。

設定

このセクションのこの行より下のすべての内容は、git-config[1] ドキュメントから選択的に含まれています。内容はそちらで見られるものと同じです。

sendemail.identity

設定識別子。指定すると、コマンドラインまたは sendemail.identity のいずれかを通じてこの識別子が選択された場合、sendemail.<identity> サブセクションの値が sendemail セクションの値よりも優先されます。デフォルトの識別子は sendemail.identity の値です。

sendemail.smtpEncryption

詳細については git-send-email[1] を参照してください。この設定は identity メカニズムの対象ではないことに注意してください。

sendemail.smtpSSLCertPath

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

sendemail.<identity>.*

以下に示す sendemail.* パラメータのID固有バージョン。このIDがコマンドラインまたは sendemail.identity のいずれかで選択された場合、これらが優先されます。

sendemail.multiEdit

true(デフォルト)の場合、編集する必要のあるファイル(--annotate 使用時のパッチ、--compose 使用時の要約)を編集するために、単一のエディタインスタンスが起動されます。falseの場合、ファイルは新しいエディタが毎回起動されて、1つずつ編集されます。

sendemail.confirm

送信前に確認するかどうかのデフォルトを設定します。alwaysnevercccompose、または 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.file が最初に読み込まれます。したがって、このファイル内のエントリは、デフォルトのメールマップの場所のエントリよりも優先されます。gitmailmap[5] を参照してください。

sendemail.mailmap.blob

sendemail.mailmap.file と同様ですが、値をリポジトリ内のブロブへの参照とみなします。sendemail.mailmap.file のエントリは、ここでのエントリよりも優先されます。gitmailmap[5] を参照してください。

sendemail.aliasesFile

長いメールアドレスの入力を避けるため、これを1つまたは複数のメールエイリアスファイルに指定します。また、sendemail.aliasFileType も指定する必要があります。

sendemail.aliasFileType

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

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

sendmail
  • 引用符で囲まれたエイリアスと引用符で囲まれたアドレスはサポートされていません。" 記号を含む行は無視されます。

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

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

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

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.thread
sendemail.transferEncoding
sendemail.validate
sendemail.xmailer

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

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」の設定オプションが存在する場合、警告を出して中断します。この変数を設定すると、チェックをバイパスできます。

SMTPサーバーの例

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

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

[sendemail]
	smtpEncryption = tls
	smtpServer = smtp.gmail.com
	smtpUser = yourname@gmail.com
	smtpServerPort = 587

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

Gmail で OAuth2.0 認証を使用することもできます。OAUTHBEARERXOAUTH2 はこの種の認証で一般的に使用されるメソッドです。Gmail は両方をサポートしています。例として、OAUTHBEARER を使用したい場合は、~/.gitconfig ファイルを編集し、アカウント設定に smtpAuth = OAUTHBEARER を追加してください。

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

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

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

パッチの送信

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

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

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

資格情報ヘルパーを設定している場合(git-credential[1] を参照)、パスワードは資格情報ストアに保存され、次回から入力する必要はありません。

OAuth2.0 認証を使用している場合、プロンプトが表示されたときにパスワードの代わりにアクセストークンを使用する必要があります。さまざまな OAuth2.0 トークンジェネレーターがオンラインで利用可能です。Gmail および Outlook 用のコミュニティがメンテナンスしている資格情報ヘルパーも利用可能です。

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

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

OAuth ベースの認証ヘルパーの詳細については、gitcredentials[7] も参照してください。

注:Perl の配布版にインストールされている可能性のある、次の主要な Perl モジュールが必要です:MIME::Base64、MIME::QuotedPrint、Net::Domain、Net::SMTP。また、これらの追加の Perl モジュールも必要です:Authen::SASL、Mail::Address。

関連項目

GIT

git[1]スイートの一部

scroll-to-top