java - 使用javax发送电子邮件?

标签 java email jakarta-mail

我想使用 javax.mail 发送电子邮件。当我运行以下代码时,它给我这个错误 Noprovider for hwangheera4hagarmaher。问题出在哪里,如何修复此错误?

我使用的代码是这样的:

public static boolean SendMail (String subject, String from, String Password, String Message, String to[])
{
    String Host = "hwangheera4hagarmaher@gmail.com";

    Properties Property = System.getProperties();
    Property.put("mail.hwangheera4hagarmaher.starttls.enable", true);
    Property.put ("mail.hwangheera4hagarmaher.host", Host);
    Property.put ("mail.hwangheera4hagarmaher.user", from);
    Property.put ("mail.hwangheera4hagarmaher.password", Password);
    Property.put ("mail.hwangheera4hagarmaher.port", 587);
    Property.put ("mail.hwangheera4hagarmaher.auth", "true");

    Session session = Session.getDefaultInstance(Property, null);

    MimeMessage message = new MimeMessage (session);

    try
    {
        message.setFrom(new InternetAddress (from));

        InternetAddress [] toAddress = new InternetAddress[to.length];

        for (int i = 0; i < to.length; i++)
        {
            toAddress [i] = new InternetAddress (to[i]);
        }

        for (int i = 0; i < toAddress.length; i++)
        {
            message.addRecipient(RecipientType.TO, toAddress[i]);
        }

        message.setSubject (subject);
        message.setText(Message);

        Transport transport = session.getTransport("hwangheera4hagarmaher");
        transport.connect (Host, from, Password);
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

        return true;
    }
    catch (MessagingException ex)
    {
        showMessageDialog (null, ex);
    }
return false;
}

最佳答案

将所有属性中的 hwangheera4hagarmaher 替换为 smtpgetTransport () 除非您已通过该方式编写了提供程序给自己起个名字。

您的主机名应该是服务器,而不是电子邮件地址。也许smtp.gmail.com

默认情况下,Google 为使用任何外部访问提供安全预防措施,特别是如果您使用某些电子邮件框架来访问您的帐户,首先您需要授予访问权限,登录您的帐户,然后转到:

https://accounts.google.com/DisplayUnlockCaptcha

然后按照其余部分操作以允许访问您的帐户。

关于java - 使用javax发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395918/

相关文章:

java - 使用BorderLayout时如何控制JPanel setSize

java - 如何用空格分割 $(MAKECMDGOALS)

java - Java 泛型中 <?> 类型的处理

android - 如何使用 Android Intent 发送 HTML 邮件

java - Android 以编程方式从任何电子邮件地址发送电子邮件

java - 无法使用 jvisualvm 分析 JBoss 5

html - 带有 HTML 格式的自动电子邮件

email - 将 Google Apps gmail 与 Symfony nahomail 插件结合使用

java - 强制 javamailsender 进行身份验证

java - 如何将 JSP 中的多部分/混合内容解析为 servlet