当前位置: 首页 > 面试题库 >

为什么我不能从servlet发送电子邮件?

金成济
2023-03-14
问题内容

我正在尝试从servlet发送电子邮件。也不例外,但是我的帐户中没有收到电子邮件。我正在使用以下代码:

 public class SendEmailServlet extends HttpServlet {
@SuppressWarnings({ "unchecked" })
public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    resp.setContentType("text/plain");
    PrintWriter out = resp.getWriter();
    PersistenceManager pm = PMF.get().getPersistenceManager();
    try
    {
         String to[] = {"mygmail@gmail.com"};
            String host = "smtp.gmail.com";
            String username = "mygmail@gmail.com";
            String password = "password";
            Properties props = new Properties();
            props.put("mail.smtps.auth", "true");
            // ...
            Session session = Session.getInstance(props);
            MimeMessage msg = new MimeMessage(session);
            // set the message content here
            msg.setFrom(new InternetAddress(username,"Me"));
            msg.setSubject("Testing");
            msg.setText("Testing...");
            Address[] addresses = new Address[to.length];
            for (int i = 0; i < to.length; i++) {
                Address address = new InternetAddress(to[i]);               
                addresses[i] = address;
                // Add the given addresses to the specified recipient type.
                msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to[i]));
            }

            Transport t = session.getTransport("smtps");

            t.connect(host, username, password);
            t.sendMessage(msg, msg.getAllRecipients());
            t.close();

            out.println(0);
        }
    }
    catch (Exception e)
    {
       System.out.println("Exception error: " + e);
       out.println(e);
    }
    finally
    {
        pm.close();
    }
}

}

我现在收到以下异常:

  Exception error: java.security.AccessControlException: access denied (java.net.SocketPermission smtp.gmail.com resolve)

谁能告诉我为什么我没有收到电子邮件以及此代码有什么问题。提前致谢


问题答案:

阅读https://developers.google.com/appengine/docs/java/mail/overview
基本上停止在您的应用程序中包含任何JavaMail库,并且不要尝试连接到主机。构建消息并直接跳转到Transport.send(msg);



 类似资料:
  • 使用 Servlet 发送一封电子邮件是很简单的,但首先您必须在您的计算机上安装 JavaMail API 和 Java Activation Framework)JAF)。 您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。 您可以从 Java 网站下载最新版本的 JAF(版本 1.1.1)。 你也可以使用本站提供的下载链接: Ja

  • 下面是我为nodemailer做的函数- 在这里,我已经在.env文件中给出了电子邮件id和密码,我正在下面使用这个功能。客户将从我的id获得一封邮件到他的电子邮件id中。 密码是正确的。但我遇到了这个错误- 错误:无效的登录名:534-5.7.9需要应用程序特定的密码。了解更多信息,请访问534 5.7.9 https://support.google.com/mail/?p=invalidse

  • 问题内容: 我正在尝试从PHP发送简单的HTML电子邮件。下面的代码仅导致GMail中的空白电子邮件。它还有一个名为“ noname”的空附件,这根本不是我想要的;尽管那可能只是它无法正常工作的症状。 我使用的代码是: 问题答案: 原来关键是编码类型。代替: 我需要使用: 它可能取决于您如何在自己的文本编辑器中保存PHP文件的细节。我没有研究它,但是PHP中的 iconv 函数可能也给我带来了一些

  • 发送电子邮件时,页脚中有下面的标准消息。 此电子邮件是使用CakePHP框架发送的,http://cakephp.org. 它似乎使用了这个: 我的控制器里有这个。 创建了以下视图: /应用程序/查看/电子邮件/文本/梦想。ctp /应用程序/视图/布局/电子邮件/文本/梦想。ctp 是否有任何其他设置我错过了cakephp使用我的布局? *注:如果我重新命名我的梦想。ctp默认。ctp它使用那个

  • 我正在使用Laravel,我想使用PHP邮件功能。我已经尝试过了: 但没有电子邮件获取发送至少我不接收它检查垃圾邮件文件夹,它不在那里,我不接收任何错误消息时,执行此代码。 php邮件函数用来发送邮件的是什么?也许我错过了什么? 此外,我没有运行这个地方,我有它上传到我的VPS运行Ubuntu 16.04。1 LTS

  • Java: openjdk版本“11.0.11”2021-04-20 openjdk运行时环境(构建11.0.11+9-Ubuntu-0Ubuntu2.20.04) openjdk 64位服务器VM(构建11.0.11+9-Ubuntu-0Ubuntu2.20.04,混合模式,共享) 握手后新会话票证到达: SSL-Session: 协议:TLSv1.3 密码:TLS_AES_256_GCM_SH