【问题标题】:Can't Send Email with Java/Play Mailer无法使用 Java/Play Mailer 发送电子邮件
【发布时间】:2019-02-22 07:50:36
【问题描述】:

我正在尝试通过 Play Framework Mailer 类发送电子邮件,但我不断收到相同的 ClassCastException。这是控制台输出:

-- Exception in thread "DataHandler.getInputStream" java.lang.ClassCastException: javax.mail.internet.MimeMultipart cannot be cast to java.lang.String
-- at org.apache.geronimo.mail.handlers.TextHandler.writeTo(TextHandler.java:143)
-- at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889)
-- at javax.activation.DataHandler$1.run(DataHandler.java:266)
-- at java.lang.Thread.run(Thread.java:748)
-- 16:48:06,606 ERROR ~
--
-- @79gebib82
-- The email has not been sent
--
-- Mail error
-- A mail error occurred : Error while sending email
--
-- play.exceptions.MailException: Error while sending email
-- at play.libs.Mail$1.call(Mail.java:193)
-- at play.libs.Mail$1.call(Mail.java:184)
-- at java.util.concurrent.FutureTask.run(FutureTask.java:262)
-- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
-- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
-- at java.lang.Thread.run(Thread.java:748)
-- Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.mailgun.org:465
-- at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
-- at org.apache.commons.mail.Email.send(Email.java:1448)
-- at play.libs.Mail$1.call(Mail.java:190)
-- ... 5 more
-- Caused by: javax.mail.SendFailedException: Send failure (javax.mail.MessagingException: Converting body of type text/html; charset=UTF-8 failed)
-- at javax.mail.Transport.send(Transport.java:163)
-- at javax.mail.Transport.send(Transport.java:48)
-- at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411)
-- ... 7 more
-- Caused by: javax.mail.MessagingException: Converting body of type text/html; charset=UTF-8 failed
-- at com.google.appengine.api.mail.stdimpl.GMTransport.convertAttachmentToString(GMTransport.java:368)
-- at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:217)
-- at javax.mail.Transport.send(Transport.java:95)
-- ... 9 more

这是我用来发送电子邮件的代码:

SimpleEmail email = new SimpleEmail();
email.setFrom("noreply@draftr.app");
email.addTo("signup@draftr.app");
email.setSubject("New Pending User");
email.setMsg("Hey this is a test");
Mail.send(email);

我正在使用 Mailgun 发送我的电子邮件,这似乎不是该配置的问题。在分支出一个现有的、功能性的、正在运行并正确发送电子邮件的应用程序后,我遇到了这个错误。

因此,ClassCastException 没有多大意义,因为我使用与现有应用程序相同的架构和 html 表单样式。什么给了?

【问题讨论】:

  • 对不起,我在上面没有看到ClassCastException。我在convertAttachmentToString(...) 上看到了故障。是否有其他信息表明ClassCastException
  • @KevinO 我很抱歉。我更新了日志输出。现在应该在那里
  • SimpleEmail 和 Mail 是您的课程吗?能把代码放上来吗?
  • @RafałSokalski 不。 SimpleMail 来自 apache.commons.mailMail 是 PlayFramework 类
  • 你能把依赖放到 PlayFramework 吗?

标签: java email playframework


【解决方案1】:

将您的邮件 jar 更新到 1.5.x 版本。该版本已解决此错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2022-11-03
    • 2015-09-03
    • 2016-11-25
    • 1970-01-01
    相关资源
    最近更新 更多