Jenkins配置QQ邮箱发送邮件
1.登陆QQ邮箱

2. 在“帐户”里开启“POP3/SMTP”并获取授权码

3. 发送短信验证验证后得到下面验证码

aeoygabszxfecbdj #验证吗
点击确定之后,服务已经开启

4. Jenkins配置
在Jenkins的“系统管理”->“系统设置”中的“邮件通知”中设置邮件服务器相关的参数

上面这一步一定要进行配置,否则虽然验证成功,但是无法发送邮件

如果不填验证密码。会报如下错误
com.sun.mail.smtp.SMTPSenderFailedException: Error: need EHLO and AUTH first !
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:)
Caused: com.sun.mail.smtp.SMTPSendFailedException: Error: need EHLO and AUTH first !
;
nested exception is:
com.sun.mail.smtp.SMTPSenderFailedException: Error: need EHLO and AUTH first !
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:)
at javax.mail.Transport.send0(Transport.java:)
at javax.mail.Transport.send(Transport.java:)
at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:)
at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:)
at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:)
at org.kohsuke.stapler.MetaClass$.doDispatch(MetaClass.java:)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:)
at org.kohsuke.stapler.MetaClass$.doDispatch(MetaClass.java:)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:)
at org.kohsuke.stapler.Stapler.service(Stapler.java:)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at hudson.util.PluginServletFilter$.doFilter(PluginServletFilter.java:)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:)
at hudson.util.PluginServletFilter$.doFilter(PluginServletFilter.java:)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:)
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:)
at hudson.security.ChainedServletFilter$.doFilter(ChainedServletFilter.java:)
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:)
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:)
at org.eclipse.jetty.server.Server.handle(Server.java:)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:)
at org.eclipse.jetty.io.ChannelEndPoint$.run(ChannelEndPoint.java:)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:)
at org.eclipse.jetty.util.thread.QueuedThreadPool$.run(QueuedThreadPool.java:)
at java.lang.Thread.run(Thread.java:)
5. 验证成功后配置

Build写入不能构建任务,点击构建,构建失败

6. 验证邮件

邮件内容

Jenkins配置QQ邮箱发送邮件的更多相关文章
- jenkins配置QQ邮箱自动发送RF测试构建结果通知邮件
声明:转载请注明出处,谢谢 首先确认QQ邮箱SMTP服务器的地址和端口号.如下图所示,请谨记,JENKINS全局邮箱配置需要使用: 步骤1:开启QQ邮箱的smtp服务:登陆QQ邮箱-设置-账户-开启P ...
- Python Django 配置QQ邮箱发送邮件
一.实验环境 Python2.7 + Django1.10.0 二.获取QQ邮箱授权码 1.什么是授权码? 授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码. 适用于登录以下服务:POP3/IM ...
- Django 配置 qq 邮箱发送邮件
目录 一.实验环境 二.获取QQ邮箱授权码 1.什么是授权码? 2.怎么获取授权码? 三.Django中配置 setting.py中添加如下代码 文本邮件 HTML 邮件 一.实验环境 Python3 ...
- flask配置qq邮箱发送邮件
1.第三方登录qq邮箱不是使用邮箱密码,而是使用独立的授权码: 2.开始在python程序中使用os.environ.get()一直无法获取到环境变量,即使是用source命令重新加载配置文件后使用e ...
- mialx配置qq邮箱发送邮件
#send mail use mailx(v12.0.4)#edit configure file set smtp-use-starttlsset from=xxxxxxxxx@qq.comset ...
- jenkins 配置qq邮箱
- 杂项之使用qq邮箱发送邮件
杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...
- SpringBoot使用qq邮箱发送邮件
最近公司要做一个邮箱注册和重置密码的功能,因为之前就做过,但是不是Springboot项目,所以相对来说还是比较容易的,在这里记录一下. 一.引用Maven依赖 这里使用spring自带的邮件jar包 ...
- 基于java mail实现简单的QQ邮箱发送邮件
刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...
随机推荐
- Linux Mint 19.1 安装 Docker 过程笔记
Linux Mint 19.1 安装 Docker 过程笔记 参考了很多教程,可能有很多教程已经过时. 综合记录一下. 首先修改一下系统的源,使用国内的源. 然后安装 docker sudo apt ...
- C++中用stringstream类进行数据类型的转换
我们在进行C++编程过程中,经常需要进行数据类型的转换. stringstream 类的作用就是进行数据类型转换.要想在程序中使用 stringstream 类,我们需要在源程序文件中包含头文件inc ...
- Laravel Class config does not exist in
修改了Laravel里面的.env文件之后报这个错误,找半天,找到罪魁祸首了,错误信息: Fatal error: Uncaught ReflectionException: Class config ...
- Pytorch使用tensorboardX可视化。超详细!!!
tensorboard --logdir runs 改为 tensorboard --logdir=D:\model\tensorboard\runs 重点 在网上看了很多方法后发现将原本链接中的计算 ...
- HZOJ visit
对于前30%的数据,可以考虑dp,f[i][j][k]表示时间为i,在i,j位置的方案数,枚举转移即可.要注意的是可以走到矩阵外. 对于另外30%数据,考虑推一下式子,设向右走y步,左z,上s,下x. ...
- 模板—树上倍增LCA
int LCA(int x,int y) { if(x==y)return x; if(dep[x]>dep[y])swap(x,y); while(dep[x]<dep[y]) ;;i+ ...
- 获取select文本框的下拉菜单文字内容的两种方式
<body> <div class="box"> <select id="sel"> <option value=&q ...
- Postman使用入门
https://jingyan.baidu.com/article/0f5fb09907e3046d8334ea2f.html Postman测试管理的单位是测试集(Collections),测试集内 ...
- functiils.lru_cache缩短递归时间
力扣上看到一道题: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 使用普通递归解决,超出时间限 ...
- C#的选择语句练习(一)
1.请输入一个数x,若x<1,则y=x:若1<=x<10,则y=2x-1:若x>=10,则y=3x-11,要求随意输入一个x值,求出y值. 2.输入问题[你有房子吗?],若回答 ...