无法使用 spring javamail 从服务器 heroku 发送电子邮件

2023-12-11

我尝试从以下位置发送电子邮件Heroku, using 春季javamail,但出现错误。

我的代码:

import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;

@Service("mailService")
public class JavaMailerServiceImpl {

    private MailSender mailSender;
    public JavaMailerServiceImpl(JavaMailSenderImpl mailSender) {
        this.mailSender = mailSender;
    }

    public void sendMail(String to, String subject, String body){
        SimpleMailMessage message = new SimpleMailMessage();
        message.setTo(to);
        message.setSubject(subject);
        message.setText(body);
        mailSender.send(message);
    }
}

Beans:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com"/>
    <property name="port" value="587"/>
    <property name="username" value="**********@gmail.com"/>
    <property name="password" value="********"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

和控制器:

    @Autowired
    private JavaMailerServiceImpl mailService;

    @RequestMapping(method = RequestMethod.POST)
    public String sendEmail(HttpServletRequest request) {
        String recipientAddress = request.getParameter("recipient");
        String subject = request.getParameter("subject");
        String message = request.getParameter("message");
        mailService.sendMail(recipientAddress,subject,message);
    }`

在 localhost:8080 和 localhost:5000 处,测试成功完成,但在 heroku 服务器上我有异常:

认证失败;嵌套异常是 javax.mail.AuthenticationFailedException: 534-5.7.14 请通过 Web 浏览器和 534-5.7.14 登录,然后重试。 534-5.7.14 了解更多信息,请访问 534 5.7.14https://support.google.com/mail/answer/78754j4sm53975482wjg.20 - gsmtp

我执行了谷歌的所有建议。你能帮我解决这个问题吗?也许是链接或类似的东西。谢谢。


我解决了这个激活问题显示解锁验证码 :

https://accounts.google.com/b/0/DisplayUnlockCaptcha

同时激活不太安全的应用程序

https://www.google.com/settings/security/lesssecureapps

这些是属性:

#Mail properties
spring.mail.default-encoding=UTF-8
spring.mail.host=smtp.gmail.com
spring.mail.username=--
spring.mail.password=--
spring.mail.port=587
spring.mail.protocol=smtp
spring.mail.debug=true
spring.mail.smtp.auth=true
spring.mail.smtp.starttls.enable=true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 spring javamail 从服务器 heroku 发送电子邮件 的相关文章

随机推荐

  • 在 cakephp 中验证输入文件

    在 cakephp 中 我试图检查文件输入字段是否附加了文件 如果没有则输出错误 我已经在其他领域做到了这一点 但似乎无法让它在该领域发挥作用 这是模型 array notempty uploadeduploaded file gt arr
  • 将输入的数据存储在数组中[重复]

    这个问题在这里已经有答案了 我是 C 初学者 如果我的问题很蹩脚 请不要介意 在我编写的这个程序中 当我第一次使用 for 循环时 我预计数组中仅存储 3 个值 但它存储 4 个值 并且在下一个 for 循环中按预期显示 3 个值 我的问题
  • 如何避免触发器内的 ORA-04091 错误

    我在表 A 上有一个更新后触发器 触发器 A 可以对表 B 进行更改 我在表 B 上还有一个更新后触发器 触发器 B 它不进行任何更改 但查询表 A 以对非规范化进行一些健全性检查 因此触发器 B 可以通过以下两种方式之一触发 如果我直接更
  • 带重定向的 Node.js 包罗万象的路由始终使用 Angular 呈现索引页面,无论 url 是什么

    本质上当我使用包罗万象的路线并使用res redirect 无论我输入的网址如何 它总是会呈现索引 主页 即 Angular 似乎没有 看到 完整的网址 但是如果我放置res render index 在包罗万象的路线中一切正常 我不想重复
  • Python:静态变量装饰器

    我想创建一个如下所示的装饰器 但我似乎想不出可行的实现 我开始认为这是不可能的 但我想我应该先问你们 我意识到在 Python 中还有各种其他方法来创建静态变量 但我发现这些方法很丑陋 如果可能的话 我真的很想使用下面的语法 static
  • 如何查看 SQL Server Management Studio 编辑器中制表位的位置?

    我使用语音识别来听写 SQL 而将事情排列起来很痛苦 如果我能看到制表位在哪里 那会节省我很多时间 Management Studio 支持一项未记录的功能 Visual Studio 也有 它将垂直引导线添加到编辑器窗口的特定列位置 使用
  • 无法在 Linux 机器上通过 ODBC 连接到 informix

    我正在运行 CentOS 7 的虚拟机上工作 并且尝试通过一些 php 使用 ODBC unixODBC 连接到 Informix 数据库 我使用的是 php7 0 并且安装了 unixODBC 2 3 7 以及 informix sdk
  • 创建自定义 MutableState 持有者

    Compose 仅 允许有限数量的状态持有者 包括所有原始数据类型和一些额外的附加组件 但不支持自定义对象或任何更复杂的对象 例如Path 我希望确保对这些类型的更改也能很好地观察到 因此我想为这些类型实现自定义扩展 就像他们添加了muta
  • 如何避免 Java 中未使用的代码抛出 NoClassDefFoundError

    我正在从事的项目是一个支持两个不同平台的API 在运行时 类路径上实际上只有两个平台之一可用 在大多数情况下 我很容易就能编写出这样工作正常的代码 if isPlatformOne PlatformOne doSomething Even
  • Python2 和 Python3:__init__ 和 __new__

    我读过其他问题来解释两者之间的区别 init and new 但我只是不明白为什么在下面的代码中用 python 2 输出 init 和Python3 new init 示例代码 class ExampleClass def new cls
  • 在 iOS 导航栏上放置标签、按钮

    我创建了自定义导航控制器 我想添加 左侧是日期 右侧是后退按钮 后退按钮旁边是标题 我尝试添加一个标签 但不起作用 请告诉我一个方法 UINavigationBar naviBarObj UINavigationBar alloc init
  • gcc 和 g++/gcc-c++ 有什么区别?

    在我看来 gcc 可以处理 c 和 c 项目 那么为什么需要 g gcc c 呢 g 和 gcc c 有什么区别 gcc如果文件具有适当的扩展名 则将 C 源文件编译为 C 将 C 源文件编译为 C 但是它不会自动链接到 C 库中 g 将自
  • “ON CONVERSION ERROR”失败并显示“ORA-43918:此参数必须是文字”

    ON CONVERSION ERROR应允许转换函数处理诸如 ORA 01858 在需要数字的地方发现非数字字符 之类的错误 但是当我使用该功能时 我只会收到不同的错误 SQL gt select to date the date defa
  • 将“CallLog.Calls”存储到另一个表中

    我需要使用什么样的查询 将 CallDB 创建为 从 CallLog Calls 中选择 我想将整个通话记录存储到另一个表中进行处理 因为我读到 calllog calls 只有最后 500 条记录 好吧 我自己做了一个解决方案 不知道它是
  • SQL Server批量插入

    我想将一列文本文件导入到我的 SQL 表之一中 该文件只是脏话列表 我编写了以下 TSQL 来执行此操作 BULK INSERT SwearWords FROM c swears txt WITH FIELDTERMINATOR ROWTE
  • Scapy多次嗅探数据包?

    我正在使用 Scapy 通过使用以下代码来捕获数据包 from scapy all import def verify p p display sniff prn verify iface lo 嗅探功能多次捕获每个数据包 例如 如果我有一
  • RecyclerView 加载更多内容并出现 ProgressBar 错误

    我正在尝试创建RecyclerviewonLoadMore 与ProgressBar在底部 我试过了这个解决方案 但是我的方法 onLoadMoreActivity从未被调用过 请帮我 这是我的Adapter public class Ne
  • 使用 Realm studio 打开我的领域文件时出现问题

    我无法在领域工作室中打开 default realm 文件 这是我收到的错误 此版本的 Realm 不支持打开格式版本 20 的 Realm 文件 我在 stackoverflow 上看到了类似的问题 但没有任何答案 领域工作室版本 5 0
  • String.intern() 的性能损失

    很多人谈论 String intern 的性能优势 但实际上我更感兴趣的是性能损失可能是什么 我主要关心的是 搜索成本 intern 确定常量池中是否存在可内部字符串所花费的时间 该成本如何随着池中字符串的数量而变化 同步 显然常量池是整个
  • 无法使用 spring javamail 从服务器 heroku 发送电子邮件

    我尝试从以下位置发送电子邮件Heroku using 春季javamail 但出现错误 我的代码 import org springframework mail MailSender import org springframework m