Share via

How to send email from manualValidation@0

Suraj Salunkhe 0 Reputation points
2024-02-14T13:50:54.9533333+00:00
  - stage: approval
    jobs:
    - job: memberlist
      pool: 
        name: Azure Pipelines
        vmImage: 'windows-2019'   
      steps:
        - task: PowerShell@2
          inputs:
            targetType: 'inline'
            script: |
              try {
                $redmineUrl = "http://redmine/projects/${env:REDMINEPROJECTID}/memberships.json?key={key}&limit=100&Content-Type=application/json"
                Write-Host $redmineUrl
                $response = Invoke-RestMethod -Uri $redmineUrl -Method Get
                $redmineData = $response | ConvertTo-Json -Depth 100 | ConvertFrom-Json 
                # Write-Host $redmineData
                $filteredUsers = $redmineData.memberships | Where-Object {
                  # dev members
                    $_.roles.id -contains 4 -or
                    $_.roles.id -contains 9 -or
                    $_.roles.id -contains 14 -or
                    $_.roles.id -contains 17 #-or
                    # PM members
                    # $_.roles.id -contains 3 -or
                    # architect members
                    # $_.roles.id -contains 16 -or
                    # $_.roles.id -contains 25 
                }
                $userIDs = $filteredUsers.user.id
                $emailAddresses = @()
                Write-Host $userIDs
                foreach ($userID in $userIDs) {
                  $userUrl = "http://redmine/users/${userID}.json?key=946b8ee19b89bbe02b3ffd140eed83acd90b9724"
                  $userDetails = Invoke-RestMethod -Uri $userUrl -Method Get
                  $userData = $userDetails | ConvertTo-Json -Depth 100 | ConvertFrom-Json
                  $userEmail = $userData.user.mail
                  $emailAddresses += $userEmail
                }
                Write-Host $emailAddresses
                $emailAddressesString = $emailAddresses -join ";"
                Write-Host $emailAddressesString
                Write-Host "##vso[task.setvariable variable=DevMembers;isOutput=true]$emailAddresses"
                # Write-Output "##vso[task.setvariable variable=deploymentCounter;isOutput=true]1"
                
              }catch {
                  Write-Host "Error: $_"
              }
          name: ProjectmembersDev
    - job: waitForValidation
      dependsOn: memberlist
      displayName: Wait for Approval  
      pool: server    
      timeoutInMinutes: 4320
      variables:
        DevStageVar: $[dependencies.memberlist.outputs['ProjectmembersDev.DevMembers']]
      steps: 
        - task: ManualValidation@0
          timeoutInMinutes: 1440 
          inputs:
            notifyUsers: |
              $(DevStageVar)
              ******@email.com
              ******@email.com
			  ******@email.com	
            instructions: 'Please validate the build configuration and resume'
            onTimeout: 'reject'
          condition: and(succeeded(), ne(variables['DevStageVar'], ''))
          name: validation

above is my code for extracting mail IDs for respective projects and adding manual validation to notify users and try to send them mail.
I'm able to receive the mail but others who are not in the organization in azure project setting are not able to receive the mail.
suggest to me how can i tackle this issue.

Community Center | Not monitored

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.