Pergunta

Eu tenho um alvo no meu script de compilação que enviará um email com um anexo detalhando as alterações do SVN para um módulo.

Isso funciona se eu codificar um único endereço de e -mail, mas agora quero enviar um e -mail para vários desenvolvedores e o script está falhando. Abaixo está o código

 <Target Name="MailInformationUpdate" DependsOnTargets="ZipArtifact" Condition="!Exists('BUILD_IS_PERSONAL')">

    <ReadLinesFromFile File="$(BuildDir)\$(recipientListFileName)">
      <Output PropertyName="Recipients"  TaskParameter="Lines"/>
    </ReadLinesFromFile>
    <Mail SmtpServer="$(smptServer)"
           To="@(Recipients)"
           From="$(senderEmail)"
           Body="Attached is a list of the changes made since the last release. "
       Subject="This module has been updated. You may wish to update." Attachments="$(BuildDir)\Builds\$(svnChangeFileName)"   
          />    
  </Target>

Se eu alterar a linha para ler $ (destinatários) A primeira pessoa na lista receberá o email, os endereços subsequentes não receberão o email.

Então mudei a linha para o que você vê abaixo @(destinatários), pois eu poderia, em seguida, em torno de cada destinatário. Não é tal sorte !!! Eu recebo a mensagem de erro

Emailing "{0}".
    <path> error : A recipient must be specified.

O arquivo que li é simplesmente um arquivo de texto no formato (emailAddress1), (emailaddress2), etc.

Foi útil?

Solução

A tarefa ReadLinesFrofile lê uma lista de itens de um arquivo de texto. Mas o arquivo deve ter um item em cada linha.

Com seu arquivo de texto no formato (emailAdress1), emailAddress2) ... você terá apenas um item contendo (EmailAdress1), EmailAddress2) .... Seu email.txt deve ser assim:

emailAdress1
emailAdress2
...

Você obtém itens da tarefa ReadLinesFil e não propriedades, então modifique sua tarefa como essa:

<Target Name="MailInformationUpdate" DependsOnTargets="ZipArtifact" Condition="!Exists('BUILD_IS_PERSONAL')">

  <ReadLinesFromFile File="$(BuildDir)\$(recipientListFileName)">
    <Output ItemName="Recipients"  TaskParameter="Lines"/>
  </ReadLinesFromFile>
  <Mail SmtpServer="$(smptServer)"
       To="@(Recipients)"
       From="$(senderEmail)"
       Body="Attached is a list of the changes made since the last release. "
       Subject="This module has been updated. You may wish to update."
       Attachments="$(BuildDir)\Builds\$(svnChangeFileName)"   
      />    
</Target>

(Há um bug no log do alvo de correio, mesmo com vários destinatários, apenas o primeiro será mostrado no log.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top