Nomes de usuário SMTP contendo barra (/) devem ser aceitos.
A barra (/) é um caractere válido para um nome de usuário SMTP, de acordo com RFC3696:
Sem aspas, as partes locais podem consistir em qualquer combinação de
caracteres alfabéticos, dígitos ou quaisquer caracteres especiais
! # $ % & ’ * + - / = ? ^ _ ` . { | } ~
Caminho corretivo
O script falha em um comando sed que, por padrão, usa a barra (/) como separador.
Como a barra (/) não é um caractere aceitável para a local-part de um endereço de e-mail, ela pode ser usada em vez da barra (/), sem nenhum efeito colateral que outro caractere como vírgula ou ponto e vírgula traria (exceto que as barras nos padrões sed devem ser escapadas — observe que usar colchetes (]) em vez disso removeria a necessidade de escapar barras — note que usar colchetes (]) em vez disso removeria a necessidade de escapar barras):
linha 589: smtp_domain=$(echo $notification_email | sed -e "s/.*@//") deve ser smtp_domain=$(echo $notification_email | sed -e "s:.*@::")
linha 648: DISCOURSE_DEVELOPER_EMAILS usa vírgula (,) para separar endereços de e-mail, então também poderia usar dois-pontos (:) com segurança
linha 675 é a origem do meu bug: sed -i -e "s/^ #\?DISCOURSE_SMTP_USER_NAME:.*/ DISCOURSE_SMTP_USER_NAME: $smtp_user_name/w $changelog" $web_file pode ser sed -i -e "s:^ #\?DISCOURSE_SMTP_USER_NAME:.*: DISCOURSE_SMTP_USER_NAME: $smtp_user_name:w $changelog" $web_file ou sed -i -e "s]^ #\?DISCOURSE_SMTP_USER_NAME:.*] DISCOURSE_SMTP_USER_NAME: $smtp_user_name]w $changelog" $web_file
o mesmo para a linha 684 (DISCOURSE_NOTIFICATION_EMAIL)
Não estou no controle desse código, mas o escrevi há muito tempo. Essa é uma ótima solução. Eu deveria ter pensado nisso. Eu apostaria que um PR seria bem-vindo.
Infelizmente perdi o acesso à minha conta do Github. Eles me pedem um código e eu não uso mais o e-mail vinculado, então simplesmente parei de usar essa plataforma, exceto para clonar código público.
Obrigado pelo relatório, adicionando pr-welcome caso alguém consiga enviar um patch.
Você sempre pode postar um .diff aqui e deixar um membro da comunidade levar o crédito