尝试使用Java发送邮件时获取javax.mail.NoSuchProviderException

援助之手

我已经阅读并尝试了stackoverflow和其他各种站点中给出的所有解决方案,但仍然遇到问题并遇到异常。

代码 :

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class sendmail {

Properties emailProperties;
Session mailSession;
MimeMessage emailMessage;

public static void main(String args[]) throws AddressException,
        MessagingException {

    sendmail javaEmail = new sendmail();

    javaEmail.setMailServerProperties();
    javaEmail.createEmailMessage();
    javaEmail.sendEmail();
}

public void setMailServerProperties() {

    String emailPort = "587";//gmail's smtp port

    emailProperties = System.getProperties();
    emailProperties.put("mail.smtp.port", emailPort);
    emailProperties.put("mail.smtp.auth", "true");
    emailProperties.put("mail.smtp.starttls.enable", "true");

}

public void createEmailMessage() throws AddressException,
        MessagingException {
    String[] toEmails = { "[email protected]" };
    String emailSubject = "Java Email";
    String emailBody = "This is an email sent by JavaMail api.";

    mailSession = Session.getDefaultInstance(emailProperties, null);
    emailMessage = new MimeMessage(mailSession);

    for (int i = 0; i < toEmails.length; i++) {
        emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmails[i]));
    }

    emailMessage.setSubject(emailSubject);
    emailMessage.setContent(emailBody, "text/html");//for a html email
    //emailMessage.setText(emailBody);// for a text email

}

public void sendEmail() throws AddressException, MessagingException {

    String emailHost = "smtp.gmail.com";
    String fromUser = "emailid";//just the id alone without @gmail.com
    String fromUserEmailPassword = "test";

    Transport transport = mailSession.getTransport("smtp");

    transport.connect(emailHost, fromUser, fromUserEmailPassword);
    transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
    transport.close();
    System.out.println("Email sent successfully.");
}

 }

当我调试代码时,它在以下行停止工作:Transport transport = mailSession.getTransport(“ smtp”);

我添加了以下JAR:

Mail.jar,pop3.jar,smtp-1.4.2.jar,Activation.jar,Additional.jar

完全例外:

线程“主”中的异常javax.mail.NoSuchProviderException:javax.mail.Session.getTransport(Session.java:689)处的javax.mail.Session.getService(Session.java:764)处的smtp。在javax.mail.Session.getTransport(Session.java:612)处的getTransport(Session.java:632)在javax.mail.Transport.send0(Transport.java)处的javax.mail.Session.getTransport(Session.java:667)处的getTransport(Session.java:632) :154),位于JannyaPaid_Device.sendmail.sendEmail(sendmail.java:68)的javax.mail.Transport.send(Transport.java:80),位于JannyaPaid_Device.sendmail.main(sendmail.java:26)

另外我想问一下防火墙可以阻止这种东西发送邮件吗?由于我们已安装了一些防火墙,但我能够手动打开和发送Gmail邮件。

帕万·库玛K
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMailTLS {

public static void main(String[] args) {

    final String username = "[email protected]";
    final String password = "password";

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
      });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("[email protected]"));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("[email protected]"));
        message.setSubject("Testing Subject");
        message.setText("Dear Mail Crawler,"
            + "\n\n No spam to my email, please!");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试使用Java发送邮件时获取javax.mail.NoSuchProviderException

来自分类Dev

Java Mail API的NoSuchProviderException

来自分类Dev

javax.mail.NoSuchProviderException:与Apache Commons Email 1.4一起使用Liberty 8.5.5.9时

来自分类Dev

java.security.NoSuchProviderException:SunEC错误

来自分类Dev

如何解决java.security.NoSuchProviderException

来自分类Dev

使用Java Mail API发送邮件时出现MailConnectException

来自分类Dev

javax.mail.AuthenticationFailedException:如何无法通过Java发送邮件?

来自分类Dev

使用javax.mail与ssl发送电子邮件

来自分类Dev

使用 javax.mail 发送大邮件,部分邮件发送失败

来自分类Dev

造成原因:java.security.NoSuchProviderException:无此类提供程序:Crypto-Android N

来自分类Dev

java.security.NoSuchProviderException:没有这样的提供者:nCipherKM

来自分类Dev

无法使用 java mail api 从 jsp webapp 发送邮件

来自分类Dev

使用mail()发送电子邮件

来自分类Dev

检查使用mail命令发送的邮件

来自分类Dev

无法使用mail()php发送邮件?

来自分类Dev

无法使用php mail()函数发送邮件

来自分类Dev

无法使用 php mail() angular 发送邮件

来自分类Dev

尝试通过Flask-Mail发送邮件时未添加任何收件人

来自分类Dev

当我尝试使用轮询邮件程序插件读取我的收件箱并触发构建时,jenkins 中会抛出 javax.mail.messaging 异常连接超时错误

来自分类Dev

尝试发送电子邮件,出现错误,提示“此导入java.mail”无法解决

来自分类Dev

尝试发送电子邮件,出现错误,提示“此导入java.mail”无法解决

来自分类Dev

PHP mail()未发送邮件

来自分类Dev

使用Java SOAP服务会破坏javax.mail引用的可打印邮件封装

来自分类Dev

通过Java发送电子邮件-javax.mail.MessagingException:无法连接到SMTP主机:localhost,端口:587;

来自分类Dev

通过Java Mail API发送电子邮件时出错?

来自分类Dev

使用Google Mail服务时服务器无法发送邮件

来自分类Dev

当我使用Linux的“ mail”命令时,实际上是如何发送邮件的?

来自分类Dev

在高山linux上使用mail命令时,“发送邮件:找不到小程序”

来自分类Dev

Java Mail API未发送电子邮件

Related 相关文章

  1. 1

    尝试使用Java发送邮件时获取javax.mail.NoSuchProviderException

  2. 2

    Java Mail API的NoSuchProviderException

  3. 3

    javax.mail.NoSuchProviderException:与Apache Commons Email 1.4一起使用Liberty 8.5.5.9时

  4. 4

    java.security.NoSuchProviderException:SunEC错误

  5. 5

    如何解决java.security.NoSuchProviderException

  6. 6

    使用Java Mail API发送邮件时出现MailConnectException

  7. 7

    javax.mail.AuthenticationFailedException:如何无法通过Java发送邮件?

  8. 8

    使用javax.mail与ssl发送电子邮件

  9. 9

    使用 javax.mail 发送大邮件,部分邮件发送失败

  10. 10

    造成原因:java.security.NoSuchProviderException:无此类提供程序:Crypto-Android N

  11. 11

    java.security.NoSuchProviderException:没有这样的提供者:nCipherKM

  12. 12

    无法使用 java mail api 从 jsp webapp 发送邮件

  13. 13

    使用mail()发送电子邮件

  14. 14

    检查使用mail命令发送的邮件

  15. 15

    无法使用mail()php发送邮件?

  16. 16

    无法使用php mail()函数发送邮件

  17. 17

    无法使用 php mail() angular 发送邮件

  18. 18

    尝试通过Flask-Mail发送邮件时未添加任何收件人

  19. 19

    当我尝试使用轮询邮件程序插件读取我的收件箱并触发构建时,jenkins 中会抛出 javax.mail.messaging 异常连接超时错误

  20. 20

    尝试发送电子邮件,出现错误,提示“此导入java.mail”无法解决

  21. 21

    尝试发送电子邮件,出现错误,提示“此导入java.mail”无法解决

  22. 22

    PHP mail()未发送邮件

  23. 23

    使用Java SOAP服务会破坏javax.mail引用的可打印邮件封装

  24. 24

    通过Java发送电子邮件-javax.mail.MessagingException:无法连接到SMTP主机:localhost,端口:587;

  25. 25

    通过Java Mail API发送电子邮件时出错?

  26. 26

    使用Google Mail服务时服务器无法发送邮件

  27. 27

    当我使用Linux的“ mail”命令时,实际上是如何发送邮件的?

  28. 28

    在高山linux上使用mail命令时,“发送邮件:找不到小程序”

  29. 29

    Java Mail API未发送电子邮件

热门标签

归档