- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在发布定义的成功阶段后发送邮件。遵循文档在我的阶段中选中了 OAuth 框项目集合服务帐户已添加到构建管理员和发布管理员中。
但是 REST API 的响应是“Azure DevOps 登录页面”这是我的脚本:
$OrganizationName = "myorg"
$ProjectName = "myproj"
$sendmailto = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="791c01181409151c3914181015571a1614" rel="noreferrer noopener nofollow">[email protected]</a>"
$mysubject = "Test Mail Subjcet"
$mailbody = "Mail body to test it works with azure rest api"
$PAT="MYPAT"
$Token = "$(System.AccessToken)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$Token"))
$HeaderMail = @{
Authorization = "Bearer $encodedCreds"
}
##send mail
$urimail = "https://${OrganizationName}.vsrm.visualstudio.com/${ProjectName}/_apis/Release/sendmail/$($env:RELEASE_RELEASEID)?api-version=3.2-preview.1"
$requestBody =
@"
{
"senderType":1,
"to":{"tfsIds":[$sendmailto]},
"body":"${mailbody}",
"subject":"${mysubject}"
}
"@
Try {
Invoke-RestMethod -Uri $urimail -Body $requestBody -Method POST -ContentType "application/json" -Headers $HeaderMail
}
Catch {
$_.Exception
}
测试对象:尝试过3.2版本和7.1
PAT token 和对基本返回 400 和不记名返回 401 的授权。
将 $(System.AccessToken) 切换为 $($env:System_AccessToken) 尝试转换为 base64 或不转换。
我缺少什么?
来自的回应 ConsoleLog
最佳答案
这是由$requestBody引起的。请求正文需要由 tfsIds
引用的有效 Azure DevOps 用户。
下面的 PS 脚本适用于我,如果您在管道中运行它,请使用 $(System.AccessToken)
而不是 $PAT
。
在本地运行并使用 PAT
进行身份验证:
$OrganizationName = "organization"
$ProjectName = "Project"
$sendmailto = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="93ebebebd3fefaf0e1fce0fcf5e7bdf0fcfe" rel="noreferrer noopener nofollow">[email protected]</a>"
$mysubject = "Test Mail Subjcet"
$PAT="xxx"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$PAT"))
$HeaderMail = @{
Authorization = "Basic $encodedCreds"
}
#Get the tfsid
$userentitlementurl = "https://vsaex.dev.azure.com/${OrganizationName}/_apis/userentitlements?api-version=7.1-preview.1"
$response = Invoke-RestMethod -Uri $userentitlementurl -Method Get -Headers $HeaderMail
#Filter by sendmailto
$tfsid = ($response.value| where {$_.user.mailAddress -eq $sendmailto}).id
Write-Host $tfsid
##send mail
$urimail = "https://vsrm.dev.azure.com/${OrganizationName}/${ProjectName}/_apis/Release/sendmail/168?api-version=7.1-preview.1"
$requestBody =
@"
{
"senderType": 1,
"to": {
"tfsIds": [
"$tfsid"
],
"emailAddresses": []
},
"subject": "$mysubject",
"sections": [
5,
0,
1,
2,
4
]
}
"@
Try {
Invoke-RestMethod -Uri $urimail -Body $requestBody -Method POST -ContentType "application/json" -Headers $HeaderMail
}
Catch {
$_.Exception
}
在发布管道中运行并使用 $(System.AccessToken)
进行身份验证:(请注意,由于此脚本在发布期间运行,因此摘要电子邮件将环境显示为 正在进行
,即使它是作为发布中的最后一步运行。)
$OrganizationName = "organization"
$ProjectName = "project"
$sendmailto = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="84fcfcfcc4e9ede7f6ebf7ebe2f0aae7ebe9" rel="noreferrer noopener nofollow">[email protected]</a>"
$mysubject = "Test Mail Subjcet"
$HeaderMail = @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
#Get the tfsid
$userentitlementurl = "https://vsaex.dev.azure.com/${OrganizationName}/_apis/userentitlements?api-version=7.1-preview.1"
$response = Invoke-RestMethod -Uri $userentitlementurl -Method Get -Headers $HeaderMail
#Filter by sendmailto
$tfsid = ($response.value| where {$_.user.mailAddress -eq $sendmailto}).id
Write-Host $tfsid
##send mail
$urimail = "$env:SYSTEM_TEAMFOUNDATIONSERVERURI$env:SYSTEM_TEAMPROJECT/_apis/Release/sendmail/$($env:RELEASE_RELEASEID)?api-version=7.1-preview.1"
$requestBody =
@"
{
"senderType": 1,
"to": {
"tfsIds": [
"$tfsid"
],
"emailAddresses": []
},
"subject": "$mysubject",
"sections": [
5,
0,
1,
2,
4
]
}
"@
Try {
Invoke-RestMethod -Uri $urimail -Body $requestBody -Method POST -ContentType "application/json" -Headers $HeaderMail
}
Catch {
$_.Exception
}
关于Azure DevOps REST API SendMail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71601908/
我知道我可以使用 -f 开关来设置 sendmail 的返回路径,我想知道是否可以在某处更改默认返回路径,或者唯一的方法是在每次发送时设置它。 最佳答案 您可以使用FEATURE(genericsta
mailx和sendmail有什么区别? 哪一个发送电子邮件的效率最高(从性能角度来看)? 最佳答案 mailx 是邮件客户端。它可以撰写电子邮件并将其发送到本地邮件传输代理(sendmail、p
在通过 sendmail 和 procmail 处理入站电子邮件时,我无法将 procmail 日志条目与 sendmail 的邮件日志条目进行匹配。 Sendmail 将 queue-id 发布到日
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
我对我们的 Web 服务器中的问题感到有点绝望。我们的网络是一个拥有大量用户和事件的社区。我们向用户发送他们感兴趣的事件的个性化邮件。我们在处理这些邮件的脚本中遇到问题。 我们的批量电子邮件脚本在有数
我正在使用 Google Apps for Domain 来托管来 self 的域的电子邮件,并且我已根据 Google 文档在我的网站上设置了 MX 记录。我还可以使用“sendmail”服务器从我
我正在尝试在我的 FreeBSD 服务器上使用双 MTA SA/VS 实现设置新安装的 Sendmail。当我自己处理邮件时,一切似乎都运行良好,但是当我尝试通过我的智能主机发送邮件时(我在其他服务器
我已经在 phpinfo 文件中的实时服务器(Linux basd LAMP)上上传了我的 joomla 项目,我发现了 "/usr/sbin/sendmail -t -i"用于 smtp 配置。和我
我正在处理一个反垃圾邮件项目( centmail ),该项目涉及让发件人使用添加自定义 header (以及签名,但该部分是 easier )的客户端插件。一般的问题是向您的外发邮件添加电子邮件 he
$to = "jijodasgupta@gmail.com"; $subject = "Hi!"; $body = "Hi,\n\nHow are you?"; if (mail($to, $subj
我刚刚尝试使用 sendmail 功能如 Mail::Sendmail 中所述 我发现只要我有一个 SMTP 服务器在本地主机上运行,我就可以从任何域发送带有用户 ID 的邮件。这怎么行?或者我错
我正在尝试使用以下命令从命令行发送邮件: echo "Subject: sendmail test" | sendmail xyz@mail.com 这可以正常工作并显示主题,但是我无法为此添加正文。
我已经在 Centos 7 上安装了 sendmail 并使用 SMART_HOST 设置了中继服务器。 但是 sendmail 在发送电子邮件时没有使用我的中继服务器,它一直使用 localhost
我有一台虚拟 CentOS 机器,我需要配置 sendmail 进行集成测试。我需要 sendmail 接受来自任何地方的所有电子邮件,而不是进行任何用户验证。我只需要它接受所有传入的有效电子邮件,而
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
尝试在脚本中发送电子邮件时,我当前使用的主机具有粗略的可靠性。 (我认为他们对让任何垃圾邮件通过真的很苛刻,而且他们碰巧也过滤掉了一些合法的东西)。我基本上需要一个替代方案。我记得看到一个网站,你可以
我已被添加到 CBL 列表中,因为我们的 Fedora 17 服务器(我们已对其进行了更新)现在正在发送将自身标识为 localhost.localdomain 的邮件。 我已从一台装有 fedora
我正在尝试在 GitLab 中设置电子邮件发件人。 我已经按照指南中的建议安装了 postfix,但是当我注册新用户时,没有发送电子邮件。 我已经尝试使用我的一个 Windows 邮件服务器的配置来配
我有一个 jar 的 UI 包装器。当 UI 触发事件“submitButton”时,将调用以下方法来执行它。 jar 在单独的进程中执行,但仅在调用进程(即 UI 服务器)停止后才会发送邮件。知道为
我尝试在我的应用程序 java 中创建一个 EmailSender 我制作了电子邮件框架,然后用谷歌搜索一些可以帮助我的例子, 所以我发现这个教程非常有用 http://www.javapractic
我是一名优秀的程序员,十分优秀!