使用javamail发送邮件不起作用

使用javamail发送邮件不起作用,java,email,gmail,jakarta-mail,Java,Email,Gmail,Jakarta Mail,我正在尝试使用我的gmail地址发送电子邮件。 我将debug设置为true,这就是我得到的结果 DEBUG: JavaMail version 1.4.1 DEBUG: not loading file: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.providers DEBUG: java.io.FileNotFoundException: /System/Library/Java

我正在尝试使用我的gmail地址发送电子邮件。 我将debug设置为true,这就是我得到的结果

DEBUG: JavaMail version 1.4.1
DEBUG: not loading file: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.providers
DEBUG: java.io.FileNotFoundException: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.providers (No such file or directory)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: not loading file: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.address.map
DEBUG: java.io.FileNotFoundException: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javamail.address.map (No such file or directory)

DEBUG: setDebug: JavaMail version 1.4.1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL true
然后我什么也不做,没有错误/警告/

我正在使用以下设置:

mail.smtp.auth=true
mail.debug=true
mail.smtp.host=smtp.gmail.com
mail.smtp.user=MyOwnUserName@gmail.com
mail.smtp.password=MyOwnPassword
mail.transport.protocol=smtp
mail.smtp.port=465
mail.disable=false
mail.verbose=true
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
我试过这些例子:

  • 同样的问题。我100%确信我的密码和电子邮件地址是正确的

    编辑: 我的代码(与第一个链接中的代码相同) nitialContext ic=新的InitialContext(); Session Session=(Session)ic.lookup(“mail/SugarCRMMailSession”)


    这是解决您问题的完美解决方案,请在此处下载邮件api jar表单

    只需转到Windows-->首选项-->Java-->已安装的JRE-->

    您正在使用的任何JRE都只需选择它并进行编辑,然后将外部jar添加到该JRE中,然后单击OK,编译器将能够加载该jar文件。因此,错误将得到解决


    试试看。

    仔细阅读这篇文章,你有可能在防火墙后面吗?@AlexR telnet smtp.gmail.com 465工作正常,所以不应该有任何网络问题。@user1109719当调试被启用并正确配置时,它应该打印smtp协议日志-阅读它们,你就会发现你的问题。否则,您将遇到网络问题或可能正在进行SSL协商problem@KonstantinV.Salikhov经过更多的研究,我发现SSL协商确实存在一些问题。现在问题解决了。谢谢谢谢你的回复。我面临的问题是我们网络中的SSL。仅供参考,我在WebLogic服务器上使用了javamail。但是你有解决方案吗?真正的解决办法是什么,但这个办法对我有效。你试过了吗?是的,如果我没有弄错的话,我们的网络管理员修改了我们的防火墙。好的,所以这有问题。您使用的是哪个端口?如果您尝试使用端口25,则可能不需要更改防火墙设置。我这么认为是因为我面临着同样的问题,我在不改变防火墙的情况下得到了解决方案。
            Properties props = session.getProperties();
    
            String  to = emailID;
    
            String mailhost = props.getProperty("mail.smtp.host");
            String user = props.getProperty("mail.smtp.user");
            String password = props.getProperty("mail.smtp.password");
            String protocol = props.getProperty("mail.transport.protocol");
    
            String authorization = props.getProperty("mail.smtp.auth");
            String mailDisabled = props.getProperty("mail.disable");
            String verboseProp = props.getProperty("mail.verbose");
            String debugProp = props.getProperty("mail.debug");
    
            boolean sentDisabled = false;
            if(mailDisabled.equals("true"))
                sentDisabled = true;
    
            if(!sentDisabled){
    
                boolean auth = false;
                if(authorization.equals("true"))
                    auth = true;
    
                boolean verbose = false;
                if(verboseProp.equals("true"))
                    verbose = true;
    
                String mailer = "smtpsend";
    
                if(debugProp.equals("true"))
                    session.setDebug(true);
                else
                    session.setDebug(false);
    
                Message msg = new MimeMessage(session);
                msg.setFrom();      
                msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
                msg.setSubject(subject);
                msg.setContent(text, "text/html;charset=UTF-8");      
                msg.setHeader("X-Mailer", mailer);
                msg.setSentDate(new Date());
    
                SMTPTransport t = (SMTPTransport)session.getTransport(protocol);
    
                try {
                    t.connect(mailhost, user, password);
                    t.sendMessage(msg, msg.getAllRecipients());
                } finally {
                        t.close();
                }
    
                 System.out.println("\nMail was sent successfully.");
            }else{
                 System.out.println("Mail Sending is disabled.");
            }