Русский ▾ Topics ▾ Latest version ▾ git-send-email last updated in 2.53.0

НАЗВАНИЕ

git-send-email - Отправить набор патчей по почте

ОБЗОР

git send-email [<параметры>] (<файл>|<каталог>)…​
git send-email [<параметры>] <параметры-format-patch>
git send-email --dump-aliases
git send-email --translate-aliases

ОПИСАНИЕ

Принимает патчи, заданные в командной строке, и отправляет их по электронной почте. Патчи могут быть указаны как файлы, каталоги (в этом случае будут отправлены все файлы в каталоге) или непосредственно как список ревизий. В последнем случае в git send-email можно передать любой формат, принимаемый git-format-patch[1], а также опции, понятные git-format-patch[1].

Заголовок письма настраивается с помощью опций командной строки. Если они не указаны в командной строке, пользователю будет предложено ввести необходимую информацию в интерфейсе с поддержкой ReadLine.

Для файлов патчей принимаются два формата:

  1. файлы в формате mbox

    Это то, что генерирует git-format-patch[1]. Большинство заголовков и MIME-форматирование игнорируются.

  2. Исходный формат, используемый сценарием send_lots_of_email.pl Грега Кроа-Хартмана

    В этом формате ожидается, что первая строка файла содержит значение Cc:, а вторая строка — Subject: (тему) сообщения.

ПАРАМЕТРЫ

Композиция

--annotate

Просмотреть и отредактировать каждое изменение (патч) перед отправкой. Значение по умолчанию берётся из sendemail.annotate. Смотрите раздел КОНФИГУРАЦИЯ для sendemail.multiEdit.

--bcc=<адрес>,…​

Указать значение Bcc: для каждого письма. Значение по умолчанию берётся из sendemail.bcc.

Этот параметр может быть указан несколько раз.

--cc=<address>,…​

Указать начальное значение Cc: для каждого письма. Значение по умолчанию берётся из sendemail.cc.

Этот параметр может быть указан несколько раз.

--compose

Вызвать текстовый редактор (см. GIT_EDITOR в git-var[1]) для редактирования вступительного сообщения к серии изменений (патчей).

При использовании --compose команда git send-email использует заголовки From, To, Cc, Bcc, Subject, Reply-To и In-Reply-To, указанные в сообщении. Если тело сообщения (то, что вы вводите после заголовков и пустой строки) содержит только пустые строки (или строки с префиксом Git:), сводка (summary) не будет отправлена, но упомянутые выше заголовки будут использованы, если только они не были удалены.

Отсутствующие заголовки From или In-Reply-To будут запрошены.

Смотрите раздел КОНФИГУРАЦИЯ для sendemail.multiEdit.

--from=<address>

Указать отправителя писем. Если не указано в командной строке, используется значение параметра конфигурации sendemail.from. Если не заданы ни параметр командной строки, ни sendemail.from, то значение будет запрошено у пользователя. Значением по умолчанию для запроса будет значение GIT_AUTHOR_IDENT или, если оно не задано, GIT_COMMITTER_IDENT, возвращаемое командой git var -l.

--reply-to=<address>

Указать адрес, на который должны отправляться ответы получателей. Используйте это, если ответы на сообщения должны идти на другой адрес, отличный от указанного параметром --from.

--in-reply-to=<identifier>

Сделать так, чтобы первое письмо (или все письма с --no-thread) выглядело как ответ на указанный Message-ID, что позволяет не разрывать обсуждение (thread) при отправке новой серии изменений. Второе и последующие письма будут отправлены как ответы в соответствии с настройкой --[no-]chain-reply-to.

Так, например, когда указаны --thread и --no-chain-reply-to, второе и последующие изменения будут ответами на первое, как показано на иллюстрации ниже, где [PATCH v2 0/3] является ответом на [PATCH 0/2]:

[PATCH 0/2] Вот что я сделал...
  [PATCH 1/2] Очистка и тесты
  [PATCH 2/2] Реализация
  [PATCH v2 0/3] Вот новая версия
    [PATCH v2 1/3] Очистка
    [PATCH v2 2/3] Новые тесты
    [PATCH v2 3/3] Реализация

Необходимо, только если также установлен --compose. Если --compose не установлен, это будет запрошено.

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

SMTP-серверы Microsoft Outlook отбрасывают Message-ID, отправленный через электронную почту, и назначают новый случайный Message-ID, тем самым нарушая обсуждение (thread).

С параметром --outlook-id-fix команда git send-email использует механизм, специфичный для серверов Outlook, чтобы узнать назначенный сервером Message-ID и исправить обсуждение. Используйте это, только если вы знаете, что сервер сообщает перезаписанный Message-ID так же, как это делают серверы Outlook.

Если этот параметр не указан, исправление выполняется по умолчанию при общении с smtp.office365.com или smtp-mail.outlook.com. Используйте --no-outlook-id-fix, чтобы отключить его даже при общении с этими двумя серверами.

--subject=<string>

Указать начальную тему (subject) обсуждения по электронной почте. Необходимо, только если также установлен --compose. Если --compose не установлен, это будет запрошено.

--to=<address>,…​

Указать основного получателя создаваемых писем. Обычно это вышестоящий (upstream) сопровождающий (maintainer) соответствующего проекта. Значением по умолчанию является значение конфигурации sendemail.to; если оно не указано и не указан параметр --to-cmd, значение будет запрошено.

Этот параметр может быть указан несколько раз.

--8bit-encoding=<encoding>

При обнаружении не-ASCII сообщения или темы, в которых не объявлена кодировка, добавлять заголовки/кавычки, указывая, что оно закодировано в <encoding>. Значение по умолчанию берётся из sendemail.assume8bitEncoding; если оно не указано, будет выдан запрос при обнаружении любых не-ASCII файлов.

Обратите внимание, что не предпринимается никаких попыток проверить кодировку.

--compose-encoding=<encoding>

Указать кодировку сообщения, создаваемого с помощью --compose. Значение по умолчанию берётся из sendemail.composeEncoding; если оно не указано, предполагается UTF-8.

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

Указать кодировку передачи (transfer encoding), используемую для отправки сообщения по 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>

Указать отправителя конверта (envelope sender), используемого для отправки писем. Это полезно, если ваш адрес по умолчанию не является адресом, подписанным на список рассылки. Чтобы использовать адрес из поля From, установите значение auto. Если вы используете двоичный файл sendmail, вы должны иметь соответствующие привилегии для параметра -f. Значение по умолчанию берётся из переменной конфигурации sendemail.envelopeSender; если она не указана, выбор отправителя конверта остаётся на усмотрение вашего MTA.

--sendmail-cmd=<команда>

Указать команду для отправки электронного письма. Команда должна быть подобна sendmail; в частности, она должна поддерживать параметр -i. Команда будет выполнена в оболочке (shell) при необходимости. Значение по умолчанию берётся из sendemail.sendmailCmd. Если оно не указано и если --smtp-server также не указан, git send-email будет искать sendmail в /usr/sbin, /usr/lib и $PATH.

--smtp-encryption=<encryption>

Указать способ начала шифрования для SMTP-соединения. Допустимые значения: ssl и tls. Любое другое значение возвращает обычный (незашифрованный) SMTP, который по умолчанию использует порт 25. Несмотря на названия, оба значения используют одну и ту же более новую версию TLS, но по историческим причинам имеют такие имена. ssl относится к "неявному" шифрованию (иногда называемому SMTPS), которое по умолчанию использует порт 465. tls относится к "явному" шифрованию (часто известному как STARTTLS), которое по умолчанию использует порт 25. SMTP-сервером могут использоваться другие порты, не являющиеся стандартными. Часто встречающийся альтернативный порт для tls и незашифрованного соединения — 587. Вам необходимо проверить документацию вашего провайдера или конфигурацию вашего сервера, чтобы убедиться в своём случае. Значение по умолчанию берётся из sendemail.smtpEncryption.

--smtp-domain=<FQDN>

Указать полное доменное имя (FQDN), используемое в команде HELO/EHLO для SMTP-сервера. Некоторые серверы требуют, чтобы FQDN соответствовало вашему IP-адресу. Если не задано, git send-email пытается определить ваш FQDN автоматически. Значение по умолчанию берётся из sendemail.smtpDomain.

--smtp-auth=<mechanisms>

Разделённый пробелами список разрешённых механизмов SMTP-AUTH. Этот параметр заставляет использовать только перечисленные механизмы. Пример:

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

Если хотя бы один из указанных механизмов совпадает с механизмами, предлагаемыми 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[1].

--no-smtp-auth

Отключить аутентификацию SMTP. Сокращение для --smtp-auth=none.

--smtp-server=<host>

Указать исходящий SMTP-сервер для использования (например, smtp.example.com или прямой IP-адрес). Если не указано и если --sendmail-cmd также не указан, по умолчанию выполняется поиск sendmail в /usr/sbin, /usr/lib и $PATH, если такая программа доступна; в противном случае используется localhost.

Для обратной совместимости этот параметр также может указывать полный путь к программе, подобной sendmail; программа должна поддерживать параметр -i. Этот метод не поддерживает передачу аргументов или использование простых имён команд. Для таких случаев рассмотрите возможность использования --sendmail-cmd.

--smtp-server-port=<port>

Указать порт, отличный от порта по умолчанию (SMTP-серверы обычно прослушивают порт smtp 25, но также могут прослушивать порт отправки (submission) 587 или общий SSL-порт smtp 465); символические имена портов (например, submission вместо 587) также принимаются. Порт также можно задать с помощью переменной конфигурации sendemail.smtpServerPort.

--smtp-server-option=<option>

Указать параметр исходящего SMTP-сервера для использования. Значение по умолчанию можно задать с помощью параметра конфигурации sendemail.smtpServerOption.

Параметр --smtp-server-option должен повторяться для каждого параметра, который вы хотите передать серверу. Аналогично, для каждого параметра в файлах конфигурации должны использоваться разные строки.

--smtp-ssl

Устаревший псевдоним для --smtp-encryption ssl.

--smtp-ssl-cert-path <path>

Путь к хранилищу доверенных сертификатов ЦС для проверки SSL/TLS-сертификата SMTP (либо каталог, обработанный c_rehash, либо один файл, содержащий один или несколько сертификатов в формате PEM, объединённых вместе: смотрите описание параметров -CAfile <файл> и -CApath <каталог> в https://docs.openssl.org/master/man1/openssl-verify/ [справочной странице OpenSSL verify(1)] для получения дополнительной информации об этом). Установите пустую строку, чтобы отключить проверку сертификата. По умолчанию используется значение переменной конфигурации 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=<папка>

Некоторые почтовые провайдеры (например, 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, указанную с помощью --imap-sent-folder или sendemail.imapSentFolder, и не будут отправлены получателям. Полезно, если вы просто хотите создать черновик писем и использовать другой почтовый клиент для их отправки. Если отключено с помощью --no-use-imap-only, письма будут отправляться как обычно. По умолчанию отключено, но переменная конфигурации sendemail.useImapOnly может использоваться для его включения.

Эта функция требует настройки git imap-send. Инструкции смотрите в git-imap-send[1].

--batch-size=<num>

Некоторые почтовые серверы (например, smtp.163.com) ограничивают количество писем, отправляемых за сеанс (соединение), и это приведёт к сбою при отправке большого количества сообщений. С этим параметром send-email будет отключаться после отправки <число> сообщений, ждать несколько секунд (см. --relogin-delay) и переподключаться, чтобы обойти такое ограничение. Возможно, вы захотите использовать какую-либо форму помощника по учётным данным (credential helper), чтобы избежать необходимости повторного ввода пароля каждый раз. По умолчанию используется переменная конфигурации sendemail.smtpBatchSize.

--relogin-delay=<int>

Ожидание <число> секунд перед повторным подключением к SMTP-серверу. Используется вместе с параметром --batch-size. По умолчанию используется переменная конфигурации sendemail.smtpReloginDelay.

Автоматизация

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

Очистить любой список адресов To:, Cc:, Bcc:, ранее заданный через конфигурацию.

--no-identity

Очистить ранее прочитанное значение sendemail.identity, заданное через конфигурацию, если оно было.

--to-cmd=<command>

Указать команду для однократного выполнения для каждого файла с изменением (патчем), которая должна генерировать специфичные для файла записи To:. Вывод этой команды должен содержать по одному адресу электронной почты в строке. Значение по умолчанию берётся из значения конфигурации sendemail.toCmd.

--cc-cmd=<command>

Указать команду для однократного выполнения для каждого файла с изменением (патчем), которая должна генерировать специфичные для файла записи Cc:. Вывод этой команды должен содержать по одному адресу электронной почты в строке. Значение по умолчанию берётся из значения конфигурации sendemail.ccCmd.

--header-cmd=<команда>

Указать команду, которая выполняется один раз для каждого исходящего сообщения и выводит строки заголовков в стиле 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>

Идентификатор конфигурации. При указании заставляет значения в подразделе sendemail.<идентификатор> иметь приоритет над значениями в разделе sendemail. Идентификатор по умолчанию — значение sendemail.identity.

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

Если этот параметр установлен, добавлять адреса электронной почты, найденные в завершителях (trailer) 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>

Указать дополнительную категорию получателей, для которых следует подавить автоматическую копию (auto-cc):

  • author — не включать автора изменения.

  • self — не включать отправителя.

  • cc — не включать никого, упомянутого в строках Cc в заголовке изменения, за исключением себя (для этого используйте self).

  • bodycc — не включать никого, упомянутого в строках Cc в теле изменения (сообщении коммита), за исключением себя (для этого используйте self).

  • sob — не включать никого, упомянутого в завершителях (trailers) Signed-off-by, за исключением себя (для этого используйте self).

  • misc-by — не включать никого, упомянутого в строках Acked-by, Reviewed-by, Tested-by и других строках "-by" в теле изменения, за исключением Signed-off-by (для этого используйте sob).

  • cccmd — не запускать команду --cc-cmd.

  • body эквивалентно sob + bodycc + misc-by.

  • all — подавить все значения автоматической копии (auto cc).

Значение по умолчанию берётся из значения конфигурации sendemail.suppressCc; если оно не указано, по умолчанию используется self, если указан --suppress-from, а также body, если указан --no-signed-off-cc.

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

Если этот параметр установлен, не добавлять адрес из поля From: в список Cc:. Значение по умолчанию берётся из значения конфигурации sendemail.suppressFrom; если оно не указано, по умолчанию используется --no-suppress-from.

--thread
--no-thread

Если этот параметр установлен, заголовки In-Reply-To и References будут добавлены к каждому отправленному письму. Будет ли каждое письмо ссылаться на предыдущее письмо (deep threading, согласно терминологии git format-patch) или на первое письмо (shallow threading), определяется параметром --[no-]chain-reply-to.

Если отключено с помощью --no-thread, эти заголовки не будут добавлены (если только не указан --in-reply-to). Значение по умолчанию берётся из значения конфигурации sendemail.thread; если оно не указано, по умолчанию используется --thread.

Пользователь должен убедиться, что заголовок In-Reply-To ещё не существует, когда git send-email запрашивается его добавление (особенно обратите внимание, что git format-patch можно настроить на самостоятельное создание обсуждения). Несоблюдение этого может не дать ожидаемого результата в почтовом клиенте (MUA) получателя.

--mailmap
--no-mailmap

Использовать файл mailmap (см. gitmailmap[5]) для сопоставления всех адресов с их каноническими реальными именами и адресами электронной почты. Дополнительные данные mailmap, специфичные для git send-email, могут быть предоставлены с использованием значений конфигурации sendemail.mailmap.file или sendemail.mailmap.blob. По умолчанию используется sendemail.mailmap.

Администрирование

--confirm=<mode>

Подтверждение непосредственно перед отправкой:

  • always — всегда подтверждать перед отправкой.

  • never — никогда не подтверждать перед отправкой.

  • cc — подтверждать перед отправкой, когда send-email автоматически добавил адреса из изменения (патча) в список копии (Cc).

  • compose — подтверждать перед отправкой первого сообщения при использовании --compose.

  • auto эквивалентно cc + 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 менее подробным. Вывод должен содержать не более одной строки на каждое письмо.

--validate
--no-validate

Выполнить проверки корректности (sanity checks) изменений (патчей). В настоящее время проверка (validation) означает следующее:

  • Вызвать перехватчик (hook) sendemail-validate, если он существует (см. githooks[5]).

  • Предупреждать об изменениях (патчах), содержащих строки длиннее 998 символов, если только не используется подходящая кодировка передачи (auto, base64 или quoted-printable); это связано с ограничениями SMTP, описанными в https://www.ietf.org/rfc/rfc5322.txt.

Значение по умолчанию берётся из sendemail.validate; если оно не установлено, по умолчанию используется --validate.

--force

Отправлять письма, даже если проверки безопасности предотвратили бы это.

Информация

--dump-aliases

Вместо обычной операции вывести краткие имена псевдонимов (alias) из настроенного файла(ов) псевдонимов, по одному в строке в алфавитном порядке. Обратите внимание, что это включает только имя псевдонима, а не его развёрнутые адреса электронной почты. Смотрите sendemail.aliasesFile для получения дополнительной информации о псевдонимах.

--translate-aliases

Вместо обычной операции читать со стандартного ввода и интерпретировать каждую строку как псевдоним (alias) электронной почты. Преобразовать его в соответствии с настроенным файлом(ами) псевдонимов. Вывести каждое преобразованное имя и адрес электронной почты в стандартный вывод, по одному в строке. Смотрите sendemail.aliasFile для получения дополнительной информации о псевдонимах.

КОНФИГУРАЦИЯ

Дальнейшее содержание этого раздела, повторяет то, что может быть найдено в git-config[1]:

Warning

Missing ru/config/sendemail.adoc

See original version for this content.

ПРИМЕРЫ SMTP-СЕРВЕРОВ

Использование Gmail в качестве SMTP-сервера

Чтобы использовать git send-email для отправки ваших изменений (патчей) через SMTP-сервер Gmail, отредактируйте ~/.gitconfig, указав настройки вашей учётной записи:

[sendemail]
	smtpEncryption = ssl
	smtpServer = smtp.gmail.com
	smtpUser = вашеимя@gmail.com
	smtpServerPort = 465

Gmail не разрешает использовать ваш обычный пароль для git send-email. Если в вашей учётной записи Gmail настроена многофакторная аутентификация, вы можете создать пароль приложения для использования с git send-email. Посетите https://security.google.com/settings/security/apppasswords, чтобы создать его.

Кроме того, вместо использования пароля приложения вы можете использовать аутентификацию OAuth2.0 с Gmail. OAuth2.0 безопаснее, чем пароли приложений, и работает независимо от того, настроена ли у вас многофакторная аутентификация. OAUTHBEARER и XOAUTH2 — это распространённые механизмы, используемые для этого типа аутентификации. Gmail поддерживает оба. В качестве примера, если вы хотите использовать OAUTHBEARER, отредактируйте файл ~/.gitconfig и добавьте smtpAuth = OAUTHBEARER в настройки вашей учётной записи:

[sendemail]
	smtpEncryption = ssl
	smtpServer = smtp.gmail.com
	smtpUser = вашеимя@gmail.com
	smtpServerPort = 465
	smtpAuth = OAUTHBEARER

Другой альтернативой является использование инструмента, разработанного Google, известного как sendgmail, для отправки писем с помощью git send-email.

Использование Microsoft Outlook в качестве SMTP-сервера

В отличие от Gmail, Microsoft Outlook больше не поддерживает пароли приложений. Следовательно, для Outlook необходимо использовать аутентификацию OAuth2.0. Кроме того, он поддерживает только механизм аутентификации XOAUTH2.

Отредактируйте ~/.gitconfig, чтобы указать настройки вашей учётной записи для Outlook и использовать его SMTP-сервер с git send-email:

[sendemail]
	smtpEncryption = tls
	smtpServer = smtp.office365.com
	smtpUser = вашеимя@outlook.com
	smtpServerPort = 587
	smtpAuth = XOAUTH2

ОТПРАВКА ПАТЧЕЙ

Когда ваши коммиты будут готовы к отправке в список рассылки, выполните следующие команды:

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

При первом запуске у вас будут запрошены ваши учётные данные. Введите пароль приложения или ваш обычный пароль, в зависимости от ситуации.

Если у вас настроен помощник по учётным данным (credential helper) (см. git-credential[1]), пароль будет сохранён в хранилище учётных данных, так что в следующий раз вам не придётся его вводить.

Если вы используете аутентификацию OAuth2.0, при запросе вам нужно использовать маркер доступа (access token) вместо пароля. В интернете доступны различные генераторы маркеров OAuth2.0. Также доступны поддерживаемые сообществом помощники по учётным данным (credential helpers):

  • git-credential-gmail (кроссплатформенный, специализированный помощник для аутентификации учётных записей Gmail)

  • git-credential-outlook (кроссплатформенный, специализированный помощник для аутентификации учётных записей Microsoft Outlook)

  • git-credential-yahoo (кроссплатформенный, специализированный помощник для аутентификации учётных записей Yahoo)

  • git-credential-aol (кроссплатформенный, специализированный помощник для аутентификации учётных записей AOL)

Вы также можете обратиться к gitcredentials[7] для получения дополнительной информации о помощниках аутентификации на основе OAuth.

Proton Mail не предоставляет SMTP-сервер для отправки писем. Если вы являетесь платным клиентом Proton Mail, вы можете использовать Proton Mail Bridge, официально предоставляемый Proton Mail, для создания локального SMTP-сервера для отправки писем. Как для бесплатных, так и для платных пользователей могут использоваться проекты, поддерживаемые сообществом, такие как git-protonmail.

Примечание: требуются следующие основные модули Perl, которые могут быть установлены вместе с вашим дистрибутивом Perl:

Также требуются эти дополнительные модули Perl:

Использование параметра sendmailCmd в git send-email

Помимо отправки писем через SMTP-сервер, git send-email также может отправлять письма через любое приложение, поддерживающее команды, подобные sendmail. Вы можете прочитать документацию по --sendmail-cmd=<команда> выше для получения дополнительной информации. Эта возможность может быть очень полезна, если вы хотите использовать другое приложение в качестве SMTP-клиента для git send-email или если ваш почтовый провайдер использует проприетарные API вместо SMTP для отправки писем.

В качестве примера давайте посмотрим, как настроить msmtp, популярный SMTP-клиент, доступный во многих дистрибутивах Linux. Отредактируйте ~/.gitconfig, чтобы указать git-send-email использовать его для отправки писем.

[sendemail]
	sendmailCmd = /usr/bin/msmtp # Измените это на путь, где установлен msmtp

Ссылки на несколько таких поддерживаемых сообществом помощников:

  • msmtp (популярный SMTP-клиент со многими функциями, доступен для Linux и macOS)

  • git-protonmail (кроссплатформенный клиент, который может отправлять письма через API ProtonMail)

  • git-msgraph (кроссплатформенный клиент, который может отправлять письма через Microsoft Graph API)

СМОТРИТЕ ТАКЖЕ

GIT

Является частью пакета git[1]