jenkins集成邮箱通知报错:Error sending to the following VALID addresses: xxxx

Jenkins 邮件插件配置与Gem源问题解决
本文记录了在使用Jenkins过程中遇到的两个问题及解决方案。首先,配置EmailExtensionPlugin插件发送邮件时,遇到无法发送到指定地址的问题,原因是未指定具体的邮箱地址。解决后,成功实现项目自动化构建、上传和通知功能。其次,集成项目时,由于找不到json-2.3.1 gem包,通过修改gem源和执行bundle update解决了依赖问题,确保了构建成功。

按照网上的教程,jenkins添加了Email Extension Plugin插件并配置完成了相关邮箱设置,但依旧报错Error sending to the following VALID addresses: xxxx,但是在邮件测试发送完全OK。

最后,经多方查询,发现是因为我用的公司邮箱有很多个名称,需制定具体发送邮箱的地址方可使用。

最后成功发送邮件,实现了项目的自动化构建,上传,通知测试功能。

-----------------------------------------------------------------------------------------------------------

发现首次集成项目的时候老是报如下错误:

.rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/bundler/spec_set.rb:86:in `block in materialize': Could not find json-2.3.1 in any of the sources (Bundler::GemNotFound)[0m

需修改gem源,网上的教程里面已经介绍过了。修改之后,然后执行bundle update即可构建成功。(我是这样解决的,不同的情况请尝试不同方案)

Jenkins 发送邮件时出现错误信息 `Not sent to the following valid addresses`,通常表明虽然目标邮箱地址被识别为有效,但由于某些配置问题或网络限制导致邮件无法成功发送。以下是几种常见的解决方案: ### 1. 检查 SMTP 邮件服务器配置 Jenkins 依赖于外部的 SMTP 服务器来发送电子邮件。如果 Jenkins 的邮件配置中未正确设置 SMTP 服务器、端口、用户名或密码,则即使收件人地址是有效的,也可能无法发送邮件。 - 在 Jenkins 系统设置(Manage Jenkins > Configure System)中,找到 **Email Notification** 或 **Extended Email Notification** 设置项。 - 确保填写了正确的 SMTP 服务器地址和端口号(例如 Gmail 使用 `smtp.gmail.com:465` 或 `smtp.gmail.com:587`)。 - 启用 SSL/TLS 加密并验证凭据是否正确。 ### 2. 使用授权码替代邮箱密码(以 QQ 邮箱为例) 对于一些现代邮箱服务提供商(如 QQ 邮箱、Gmail),直接使用登录密码可能无法通过 SMTP 认证,需要生成专用的“应用授权码”[^3]。 - 登录到你的邮箱账户,进入安全设置页面。 - 开启“SMTP 服务”并生成授权码。 - 将该授权码填入 Jenkins邮箱凭证中,而不是常规登录密码。 ### 3. 配置 Extended Email Notification 插件的凭证 在 Jenkins 中安装并使用 **Email Extension Plugin** 可提供更灵活的邮件通知功能。若未正确配置插件中的认证信息,可能导致邮件发送失败。 - 进入 **Manage Jenkins > Configure System**。 - 找到 **Extended E-mail Notification** 部分。 - 在 Credentials 字段中添加邮箱账号及对应的授权码。 - 确保收件人地址字段填写无误,并且与 Jenkins 用户配置中的邮箱一致。 ### 4. 检查 Jenkins 构建任务的通知触发条件 有时构建任务的后处理步骤中设置了邮件通知,但未正确触发邮件发送。 - 进入 Jenkins 任务配置页面,检查 **Post-build Actions** 是否包含 **Editable Email Notification**。 - 确认邮件触发器(如 `Always`、`Failure` 等)已正确选择。 - 查看控制台输出日志,确认是否有 `Email was triggered for: Always` 等提示信息。 ### 5. 验证 Jenkins 服务器的网络连接 Jenkins 服务器必须能够访问所使用的 SMTP 服务器。可以通过命令行工具测试网络连通性: ```bash telnet smtp.qq.com 465 ``` 如果无法建立连接,可能是防火墙或 DNS 设置阻止了对外部 SMTP 服务器的访问。 ### 示例:配置 Jenkins 使用 QQ 邮箱发送邮件 ```python # Jenkinsfile 示例片段 pipeline { agent any stages { stage('Build') { steps { echo "Building..." } } } post { always { emailext ( subject: "Build result: ${currentBuild.fullDisplayName}", body: "Check console output at ${env.BUILD_URL}", recipientProviders: [[$class: 'DevelopersRecipientProvider']], to: 'your-email@qq.com' ) } } } ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值