【问题标题】:Can't make API call mail.Send from com.google.appengine library using MailService无法使用 MailService 从 com.google.appengine 库进行 API 调用 mail.Send
【发布时间】:2019-09-14 20:35:54
【问题描述】:

问题是我将 com.google.appengine 集成到我的 maven 项目中,并且我想使用 MailService 发送邮件,但它引发了我不知道如何解决的异常。它向我抛出:“无法使 API 调用邮件。在既不是原始请求线程也不是由 ThreadManager 创建的线程的线程中发送”。你能帮我解决它吗?这是我的 Maven 依赖项:

<dependency>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-api-1.0-sdk</artifactId>
    <version>1.9.73</version>
</dependency>

这里是代码:

MailService mailService = MailServiceFactory.getMailService();
        Message message = new Message();
        message.setSender("dilian_1995@abv.bg");
        message.setTo("dilyangalabov@gmail.com");
        message.setSubject("Test");
        message.setTextBody("Testt");

        try {
            mailService.send(message);
        }
        catch (IOException e) {
            e.printStackTrace();
        }

【问题讨论】:

    标签: java maven email google-app-engine service


    【解决方案1】:

    我使用 javax.mail 制作邮件发送服务,就是这样。 “String to”是您要发送的电子邮件。 要通过谷歌发送我 setPropetry mail.smtp.host 到 smtp.gmail.com

    public class MailSend {
      public static boolean main(String to) throws IOException, MessagingException {
        final Properties properties = new Properties();
        properties.setProperty("mail.transport.protocol", "smtps");
        properties.setProperty("mail.smtps.auth", "true");
        properties.setProperty("mail.smtps.host", "smtp.gmail.com");
        properties.setProperty("mail.smtps.user", "YOUREMAIL@gmail.com");
    
    
        Session session = Session.getDefaultInstance(properties);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress("YOUREMAIL@gmail.com"));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        message.setSubject("THEME");
        message.setText("TEXT");
        Transport transport = session.getTransport();
        transport.connect("YOUREMAIL@gmail.com", "PASSWORD");
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    
        return true;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 2015-08-07
      • 2021-02-08
      • 2014-09-17
      • 2018-04-05
      • 2020-03-31
      • 2016-06-08
      • 1970-01-01
      • 2018-01-13
      相关资源
      最近更新 更多