Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-send-email last updated in 2.47.0

NOME

git-send-email - Envia uma coleção de patches como e-mails

RESUMO

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

DESCRIÇÃO

Recebe correções informados na linha de comando e os envia por e-mail. As correções podem ser especificados como arquivos, diretórios (que enviarão todos os arquivos do diretório) ou diretamente como uma lista de revisão. No último caso, qualquer formato aceito por git-format-patch[1] pode ser passado para o comando git send-email, bem como as opções compreendidas por git-format-patch[1].

O cabeçalho do e-mail pode ser configurado por meio de opções de linha de comando. Se não for especificado na linha de comando, o usuário será solicitado a fornecer as informações necessárias por meio de uma interface habilitada para ReadLine.

Existem dois formatos aceitos para os arquivos patch:

  1. arquivos no formato mbox

    Isso é o que o git-format-patch[1] gera. A maioria dos cabeçalhos e da formatação MIME é ignorada.

  2. O formato original utilizado pelo script send_lots_of_email.pl feito pelo Greg Kroah-Hartman’s

    Este formato espera que a primeira linha do arquivo tenha o valor "Cc:" e o "Assunto:" da mensagem como a segunda linha.

OPÇÕES

Composição

--annotate

Revise e edite cada patch que você está prestes a enviar. O padrão é o valor de sendemail.annotate. Consulte a seção CONFIGURAÇÃO de sendemail.multiEdit.

--bcc=<endereço>,…​

Especifique um valor "Cco:" para cada e-mail. A predefinição é o valor do sendemail.bcc.

Esta opção pode ser utilizada várias vezes.

--cc=<endereço>,…​

Especifique um valor inicial de "Cc:" para cada e-mail. A predefinição é o valor em sendemail.cc.

Esta opção pode ser utilizada várias vezes.

--compose

Chame um editor de texto (consulte o GIT_EDITOR do comando git-var[1]) para editar uma mensagem introdutória para a série de correções.

Quando --compose é utilizado, o git send-email utilizará os cabeçalhos From, To, Cc, Bcc, Subject, Reply-To e In-Reply-To especificados na mensagem. Se o corpo da mensagem (o que você digita após os cabeçalhos e uma linha em branco) contiver apenas linhas em branco (ou com prefixo Git:), o resumo não será enviado, mas os cabeçalhos mencionados acima serão usados, a menos que sejam removidos.

Os cabeçalhos ausentes "From" ou "In-Reply-To" (em resposta a) serão solicitados.

Consulte a seção CONFIGURAÇÃO para a opção de configuração sendemail.multiEdit.

--from=<endereço>

Especifique o remetente dos e-mails. Se não for especificado na linha de comando, será usado o valor da opção de configuração em sendemail.from. Se nem a opção de linha de comando nem sendemail.from estiverem definidos, o usuário será solicitado a informar o valor. A predefinição para o prompt será o valor de GIT_AUTHOR_IDENT, ou GIT_COMMITTER_IDENT se não estiver definido, conforme retornado por git var -l.

--reply-to=<endereço>

Especifique o endereço para o qual as respostas dos destinatários devem ser enviadas. Use esse parâmetro se as respostas às mensagens tiverem que ser enviadas para outro endereço que não o especificado com o parâmetro --from.

--in-reply-to=<identificador>

Faz com que o primeiro e-mail (ou todos os e-mails com --no-thread) apareça como uma resposta ao ID de mensagem fornecido, o que evita a quebra de tópicos para fornecer uma nova série de correções. O segundo e-mail e os subsequentes serão enviados como respostas de acordo com a configuração --[no-]chain-reply-to.

Assim, por exemplo, quando --thread e --no-chain-reply-to sejam utilizados, o segundo e os patches subsequentes serão as respostas para o primeiro, como na ilustração abaixo, onde [PATCH v2 0/3] está como resposta para [PATCH 0/2]:

[PATCH 0/2] Aqui está o que eu fiz...
  [PATCH 1/2] Limpeza e testes
  [PATCH 2/2] Implementação
  [PATCH v2 0/3] Aqui está uma nova rolagem
    [PATCH v2 1/3] Limpar
    [PATCH v2 2/3] Novos testes
    [PATCH v2 3/3] Implementação

É apenas necessário caso a opção --compose também seja definida. Caso a opção --compose não tenha sido definida, isso será solicitado posteriormente.

--subject=<texto>

Especifique o assunto inicial do tópico do e-mail. É apenas necessário caso a opção --compose também seja definida. Caso a opção --compose não tenha sido definida, isso será solicitado posteriormente.

--to=<endereço>,…​

Especifique o destinatário principal dos e-mails gerados. Geralmente, esse será o mantenedor upstream do projeto envolvido. A predefinição é o valor do valor da configuração sendemail.to; se esse valor e --to-cmd não for especificado, ele será solicitado.

Esta opção pode ser utilizada várias vezes.

--8bit-encoding=<codificação>

Ao encontrar uma mensagem ou um assunto não ASCII que não declare a sua codificação, adicione cabeçalhos/citações para indicar que ele está codificado em <codificação>. A predefinição é o valor em sendemail.assume8bitEncoding; se esse valor não for especificado, ele será solicitado se forem encontrados arquivos não ASCII.

Observe que nenhuma tentativa é feita para validar a codificação.

--compose-encoding=<codificação>

Specify encoding of compose message. Default is the value of the sendemail.composeEncoding; if that is unspecified, UTF-8 is assumed.

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

Especifique a codificação de transferência a ser usada para enviar a mensagem por SMTP. 7bit falhará ao encontrar uma mensagem não ASCII. A opção quoted-printable pode ser útil quando o repositório contém arquivos que contêm retornos de carruagem, mas torna o arquivo de correção no e-mail puro (como salvo de um MUA) muito mais difícil de inspecionar manualmente. A base64 é ainda mais infalível, mas também ainda mais transparente. Já auto usará 8 bits sempre que possível e, caso contrário, usará o quoted-printable.

A predefinição é o valor da configuração sendemail.transferEncoding; caso isso não seja definido, a predefinição retorna para auto.

--xmailer
--no-xmailer

Adicionar (ou impedir a adição) o cabeçalho "X-Mailer:". É predefinido que o cabeçalho seja adicionado, mas pode ser desativado com a definição da variável de configuração sendemail.xmailer como false.

Enviando

--envelope-sender=<endereço>

Especifique o remetente do envelope usado para enviar os e-mails. Isso é útil se o seu endereço padrão não for o endereço que está inscrito numa lista. Para usar o endereço "From", defina o valor como auto. Se você usar o binário do sendmail, deverá ter privilégios adequados para o parâmetro -f. A predefinição é o valor da variável de configuração em sendemail.envelopeSender; se ela não for especificada, a escolha do remetente do envelope ficará a cargo do seu MTA.

--sendmail-cmd=<comando>

Specify a command to run to send the email. The command should be sendmail-like; specifically, it must support the -i option. The command will be executed in the shell if necessary. Default is the value of sendemail.sendmailCmd. If unspecified, and if --smtp-server is also unspecified, git-send-email will search for sendmail in /usr/sbin, /usr/lib and $PATH.

--smtp-encryption=<criptografia>

Especifique de que forma a criptografia começa para a conexão SMTP. Os valores válidos são ssl e tls. Qualquer outro valor reverte para SMTP simples (não criptografado), que tem como padrão a porta 25. Apesar dos nomes, ambos os valores usarão a mesma versão mais recente do TLS, mas, por motivos históricos, têm esses nomes. O ssl refere-se à criptografia "implícita" (às vezes chamada de SMTPS), que usa a porta 465 por padrão. O tls refere-se à criptografia "explícita" (geralmente conhecida como STARTTLS), que usa a porta 25 por padrão. Outras portas podem ser usadas pelo servidor SMTP, que não são as portas predefinidas. A porta alternativa comumente encontrada para tls e não criptografada é 587. Você precisa verificar a documentação do seu provedor ou a configuração do seu servidor para ter certeza no seu próprio caso. A predefinição é o valor em sendemail.smtpEncryption.

--smtp-domain=<FQDN>

Especifica o FQDN (Fully Qualified Domain Name, nome de domínio totalmente qualificado) usado no comando HELO/EHLO para o servidor SMTP. Alguns servidores exigem que o FQDN corresponda ao seu endereço IP. Se não estiver definido, o comando git send-email tentará determinar automaticamente o seu FQDN. A predefinição é o valor em sendemail.smtpDomain.

--smtp-auth=<mecanismos>

Mecanismos SMTP-AUTH permitidos, listas separadas por um espaço. Está configuração impõem a utilização dos mecanismos listados. Exemplo:

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

Caso pelo menos um dos mecanismos definidos coincidir com os anunciados através do servidor SMTP e caso seja compatível pela biblioteca SASL utilizada, o mecanismo será utilizado para a autenticação. Caso nem a opção de configuração sendemail.smtpAuth nem a opção --smtp-auth forem utilizados, todos os mecanismos compatíveis através da biblioteca SASL poderão ser utilizados. O valor especial none pode ser informado para desativar completamente a autenticação, independentemente da opção --smtp-user

--smtp-pass[=<senha>]

A senha para o SMTP-AUTH. O argumento é opcional: Caso nenhum argumento seja definido, então um valor vazio é utilizado como uma senha. A predefinição é o valor da opção de configuração sendemail.smtpPass, no entanto, a opção --smtp-pass sempre substitui este valor.

Além disso, as senhas não precisam ser definidas nos arquivos de configuração ou na linha de comando. Caso um nome de usuário seja definido (com --smtp-user ou` sendemail.smtpUser), porém nenhuma senha seja definida (com --smtp-pass ou sendemail.smtpPass), uma senha é obtida utilizando o comando git-credential.

--no-smtp-auth

Desative a autenticação SMTP. É um atalho para --smtp-auth=none

--smtp-server=<host>

Se definido, especifica o servidor SMTP de saída a ser usado (smtp.example.com ou um endereço IP puro por exemplo). Se não for especificado, e se a opção --sendmail-cmd também não for especificada, a predefinição é procurar pelo sendmail em /usr/sbin, /usr/lib e $PATH se esse programa estiver disponível, caso contrário, retorna para localhost.

Para fins de compatibilidade com versões anteriores, essa opção também pode especificar um nome de caminho completo de um programa semelhante ao sendmail; o programa deve ser compatível com a opção -i. Esse método não suporta a passagem de argumentos ou o uso de nomes de comandos simples. Para estes casos de uso, considere usar a opção --sendmail-cmd.

--smtp-server-port=<porta>

Especifica uma porta diferente da porta preestabelecida (os servidores SMTP normalmente escutam a porta smtp 25, mas também podem escutar a porta de envio 587 ou a porta smtp SSL comum 465); nomes de porta simbólicos ("envio" em vez de 587 por exemplo,) também são aceitos. A porta também pode ser definida com a variável de configuração sendemail.smtpServerPort.

--smtp-server-option=<opção>

Se definido, especifica a opção de saída do servidor SMTP que será usado. O valor predefinido pode ser especificado pela opção de configuração sendemail.smtpServerOption.

A opção --smtp-server-option deve ser repetida para cada opção que você queira passar para o servidor. Da mesma forma, as linhas diferentes nos arquivos de configuração devem ser utilizadas para cada opção.

--smtp-ssl

Legado para o pseudônimo --smtp-encryption ssl.

--smtp-ssl-cert-path

Path to a store of trusted CA certificates for SMTP SSL/TLS certificate validation (either a directory that has been processed by c_rehash, or a single file containing one or more PEM format certificates concatenated together: see verify(1) -CAfile and -CApath for more information on these). Set it to an empty string to disable certificate verification. Defaults to the value of the sendemail.smtpSSLCertPath configuration variable, if set, or the backing SSL library’s compiled-in default otherwise (which should be the best choice on most platforms).

--smtp-user=<usuário>

O nome do usuário para o SMTP-AUTH. A predefinição é o valor da opção de configuração sendemail.smtpUser; caso um nome de usuário não tenha sido definido(com --smtp-user ou sendemail.smtpUser), a tentativa de autenticação não será realizada.

--smtp-debug=(0|1)

Ative (1) ou desative (0) a geração da depuração. Se ativado, os comandos e respostas SMTP serão impressos. Útil para depurar problemas de conexão e a autenticação TLS.

--batch-size=<num>

Alguns servidores de e-mail (smtp.163.com por exemplo) limitam a quantidade de e-mails que serão enviados por sessão (conexão), o que pode levar a uma falha ao enviar muitas mensagens. Com essa opção, o send-email se desconectará após enviar $<quantidade> de mensagens, aguardará alguns segundos (consulte a opção --relogin-delay) e se reconectará, para contornar esse limite. Talvez queira usar algum tipo de auxiliar de credencial para evitar ter que redigitar a sua senha toda vez que isso acontecer. A predefinição é o que estiver na variável de configuração sendemail.smtpBatchSize.

--relogin-delay=<int>

Aguardando $<int> segundos antes de se reconectar ao servidor SMTP. Utilize em conjunto com a opção --batch-size. A predefinição é o que estiver na variável de configuração sendemail.smtpReloginDelay.

Automatizando

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

Limpa qualquer lista dos endereços "Para:", "Cc:", "Cco:" definidos anteriormente através da config.

--no-identity

Limpa o valor lido anteriormente do sendemail.identity definido através da config, caso exista.

--to-cmd=<comando>

Specify a command to execute once per patch file which should generate patch file specific "To:" entries. Output of this command must be single email address per line. Default is the value of sendemail.toCmd configuration value.

--cc-cmd=<comando>

Especifique um comando a ser executado uma vez por arquivo de correção que deve gerar entradas "Cc:" específicas do arquivo de correção. A saída desse comando deve ser um único endereço de e-mail por linha. A predefinição é o valor da configuração em sendemail.ccCmd.

--header-cmd=<comando>

Defina um comando que seja executado uma vez por mensagem gerada e produza linhas de cabeçalho no estilo RFC 2822 para serem inseridas nelas. Quando a variável de configuração sendemail.headerCmd for definida, este valor será sempre utilizado. Quando a opção --header-cmd for usada na linha de comando, o seu valor tem precedência sobre a variavel de configuração sendemail.headerCmd.

--no-header-cmd

Desativa qualquer cabeçalho em uso.

--[no-]chain-reply-to

Se isso for definido, cada e-mail será enviado como uma resposta ao e-mail anterior. Se desativado com a opção --no-chain-reply-to, todos os e-mails após o primeiro serão enviados como respostas ao primeiro e-mail enviado. Ao usar esse recurso, recomenda-se que o primeiro arquivo fornecido seja uma visão geral de toda a série de correções. E desativado por padrão, mas a variável de configuração em sendemail.chainReplyTo pode ser usada para ativá-lo.

--identity=<identidade>

Uma identidade de configuração. Quando informado, faz com que os valores na subseção sendemail.<identidade> tenham precedência sobre os valores na seção sendemail. A identidade predefinida é o valor existente em sendemail.identity.

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

If this is set, add emails found in the Signed-off-by trailer or Cc: lines to the cc list. Default is the value of sendemail.signedOffByCc configuration value; if that is unspecified, default to --signed-off-by-cc.

--[no-]cc-cover

If this is set, emails found in Cc: headers in the first patch of the series (typically the cover letter) are added to the cc list for each email set. Default is the value of sendemail.ccCover configuration value; if that is unspecified, default to --no-cc-cover.

--[no-]to-cover

If this is set, emails found in To: headers in the first patch of the series (typically the cover letter) are added to the to list for each email set. Default is the value of sendemail.toCover configuration value; if that is unspecified, default to --no-to-cover.

--suppress-cc=<categoria>

Define uma categoria adicional dos destinatários para suprimir o auto-cc do:

  • author irá evitar a inclusão o autor do patch.

  • self evitará incluir o remetente.

  • cc irá evitar a inclusão de qualquer pessoa mencionada nas linhas Cc no cabeçalho do patch, exceto self (utilize self para isso).

  • bodycc irá evitar a inclusão de qualquer pessoa mencionada nas linhas Cc no corpo do patch (mensagem do commit), exceto o self (utilize self para isso).

  • O sob evitará incluir qualquer pessoa mencionada nas linhas Signed-off-by, exceto para self (utilize self para isso).

  • O misc-by evitará incluir qualquer pessoa mencionada nas linhas Acked-by (Reconhecido-por), Review-by (Revisado-por), Tested-by (Testado-por) e outras linhas "by-by" no corpo do patch, exceto o Signed-off-by (Assinado-por) (utilize sob para tanto).

  • cccmd evitará executar o --cc-cmd.

  • body é o equivalente a sob + bodycc + misc-by.

  • all irá suprimir todos os valores cc de maneira automática.

Default is the value of sendemail.suppressCc configuration value; if that is unspecified, default to self if --suppress-from is specified, as well as body if --no-signed-off-cc is specified.

--[no-]suppress-from

Se esta opção estiver definida, não adicione o endereço From: à lista cc:. A predefinição é o valor da configuração em sendemail.suppressFrom; se este valor não for especificado, a predefinição será a opção --no-suppress-from.

--[no-]thread

Se isso for definido, os cabeçalhos "In-Reply-To" e "References" serão adicionados a cada e-mail enviado. O fato de cada e-mail se referir ao e-mail anterior (encadeamento deep de acordo com o texto do comando git format-patch) ou ao primeiro e-mail (encadeamento shallow) é regido pela opção --[no-]chain-reply-to.

Caso seja desativado com a opção --no-thread, estes cabeçalhos não serão adicionados (a menos que seja especificado com a opção --in-reply-to). A predefinição é o valor da configuração em sendemail.thread; se esse valor não for especificado, o padrão será --thread.

Cabe ao usuário garantir que nenhum cabeçalho In-Reply-To já exista quando o comando git send-email for solicitado a adicioná-lo (observe especialmente que o comando git format-patch pode ser configurado para fazer o encadeamento por si só). Se isso não for feito, pode não produzir o resultado esperado no MUA do destinatário.

--[no-]mailmap

Use the mailmap file (see gitmailmap[5]) to map all addresses to their canonical real name and email address. Additional mailmap data specific to git-send-email may be provided using the sendemail.mailmap.file or sendemail.mailmap.blob configuration values. Defaults to sendemail.mailmap.

Administrando

--confirm=<modo>

Apenas confirme antes de enviar:

  • always sempre pedirá confirmação antes do envio

  • O never nunca irá confirmar antes do envio

  • cc irá pedir uma confirmação antes do envio quando o "send-email" tiver adicionado de forma automática os endereços do patch à lista Cc

  • compose (compor) irá confirmar antes de enviar a primeira mensagem ao utilizar o --compose.

  • auto é o equivalente a cc + compose (compor)

A predefinição é o valor da configuração sendemail.confirm; caso isso não seja definido, utilize a predefinição auto, a menos que alguma das opções da supressão tenha sido utilizada; nesse caso, a predefinição será compose.

--dry-run

Faça tudo, exceto realmente enviar os e-mails.

--[no-]format-patch

Quando um argumento puder ser entendido como uma referência ou como um nome de arquivo, opte por entendê-lo como um argumento de correção no formato (--format-patch) ou como um nome de arquivo (--no-format-patch). È predefinido que quando este conflito ocorrer, o comando git send-email irá falhar.

--quiet

Torne o comando git-send-email menos detalhado. Uma linha por e-mail deve ser tudo o que é enviado.

--[no-]validate

Realizar verificações de sanidade nas correções. Atualmente, a validação significa o seguinte:

  • Se presente, chame o gancho de validação do sendmail (consulte githooks[5]).

  • Aviso dos patches que contenham linhas mais longas que 998 caracteres, a menos que uma codificação de transferência adequada (auto, base64 ou quoted-printable) seja usada; isso se deve aos limites do SMTP, conforme descrito em https://www.ietf.org/rfc/rfc5322.txt.

A predefinição é o valor do sendemail.validate; caso já não estiver definido, a predefinição retorna para --validate.

--force

Envie os e-mails mesmo que as verificações de segurança as impeçam.

Informação

--dump-aliases

Instead of the normal operation, dump the shorthand alias names from the configured alias file(s), one per line in alphabetical order. Note that this only includes the alias name and not its expanded email addresses. See sendemail.aliasesFile for more information about aliases.

--translate-aliases

Instead of the normal operation, read from standard input and interpret each line as an email alias. Translate it according to the configured alias file(s). Output each translated name and email address to standard output, one per line. See sendemail.aliasFile for more information about aliases.

CONFIGURAÇÃO

Warning

Missing pt_BR/includes/cmd-config-section-all.txt

See original version for this content.

Warning

Missing pt_BR/config/sendemail.txt

See original version for this content.

EXEMPLOS

Utilize o gmail como servidor smtp

Para usar o git send-email para enviar os seus patches através do servidor SMTP do GMail, edite ~/.gitconfig para definir as configurações da sua conta:

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

Caso opte pela autenticação em várias etapas configurada na sua conta do Gmail, será possível gerar uma senha específica do aplicativo para que possa ser usado com o comando git send-email. Visite o link https://security.google.com/settings/security/apppasswords para criá-la.

Quando os seus commits estiverem prontos para serem enviadas para a lista de discussão, execute os seguintes comandos:

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

Na primeira vez em que for executado, você será solicitado a fornecer as suas credenciais. Digite a senha específica do aplicativo ou a sua senha normal, conforme for apropriado. Se você tiver configurado o auxiliar de credencial (consulte git-credential[1]), a senha será salva no armazenamento de credenciais para que você não precise digitá-la na próxima vez.

Observação: são necessários os seguintes módulos principais do Perl que podem estar instalados com a sua distribuição do Perl: MIME::Base64, MIME::QuotedPrint, Net::Domain e Net::SMTP. Esses módulos adicionais do Perl também são necessários: Authen::SASL e Mail::Address.

VEJA TAMBÉM

GIT

Parte do conjunto git[1]

scroll-to-top