相关疑难解决方法(0)

使用Javamail和Greenmail进行SMTPS/SSL

我正在尝试编写一个测试,它将使用JavaMail SMTP或SMTPS通过SSL和身份验证向我正在运行的Greenmail服务器发送消息.

我写了一个快速的小子,它应该完全符合我的要求:

import java.util.Properties;

import javax.mail.Session;
import javax.mail.Transport;

import com.icegreen.greenmail.user.GreenMailUser;
import com.icegreen.greenmail.util.GreenMail;

public class MailTest {
    public static void main(String[] args) throws Exception {
        GreenMail greenmail = new GreenMail();
        try {
            greenmail.start();

            String email = "foo@bar";
            String userid = "user";
            String password = "pa$$word";
            GreenMailUser setUser = greenmail.setUser(email, userid, password);
            setUser.create();
            GreenMailUser user = greenmail.getManagers().getUserManager().getUser(userid);
            System.out.println("User created:" + user.getEmail() + ":" + user.getLogin() + ":" + user.getPassword());

            int portSmtps = greenmail.getSmtps().getPort();
            System.out.println("Smtps started on port:" + portSmtps); …
Run Code Online (Sandbox Code Playgroud)

java ssl smtp jakarta-mail greenmail

7
推荐指数
1
解决办法
5590
查看次数

通过SMTP发送电子邮件时出错

我正在尝试使用gmail作为SMTP通过Java代码发送电子邮件.但是如下所示获得例外.你能不能告诉我为什么它找不到gmail主机.我在办公室网络工作,不确定是否有一些防火墙阻止其发送.如果是的话,出路是什么?

Exception in thread "main" com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 586; timeout -1;
  nested exception is:
    java.net.UnknownHostException: smtp.gmail.com
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2053)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)
    at javax.mail.Service.connect(Service.java:364)
    at javax.mail.Service.connect(Service.java:245)
    at mail.JavaEmail.sendEmail(JavaEmail.java:72)
    at mail.JavaEmail.main(JavaEmail.java:22)
Caused by: java.net.UnknownHostException: smtp.gmail.com
Run Code Online (Sandbox Code Playgroud)

Java源代码:

package mail;

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 JavaEmail
{
    Session mailSession;

    public static void main(String args[]) throws AddressException,    MessagingException
    {
        JavaEmail javaEmail = new JavaEmail();
        javaEmail.setMailServerProperties();
        javaEmail.draftEmailMessage();
        javaEmail.sendEmail();
    }

    private …
Run Code Online (Sandbox Code Playgroud)

java email

5
推荐指数
1
解决办法
1万
查看次数

将JavaMail与自签名证书一起使用

我有一个包含以下代码的servlet:

System.setProperty("javax.net.ssl.keyStore", getServletContext().getRealPath("keystore.jks"));
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("javax.net.ssl.trustStore",getServletContext().getRealPath("keystore.jks"));
System.setProperty("javax.net.ssl.trustStorePassword","123456");

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("127.0.0.1", 606);
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以使用SSL(我的情况是强制性的).稍后在同一个servlet中,我需要使用JavaMail发送电子邮件.当我尝试在不使用其他代码中的证书的情况下发送此电子邮件时,它工作正常,但是当我尝试使用它时,会返回以下消息:使用端口465 - >

DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
Run Code Online (Sandbox Code Playgroud)

Aaand被困在这个= p.

使用端口587 - >

DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG …
Run Code Online (Sandbox Code Playgroud)

java ssl servlets jakarta-mail self-signed

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×3

jakarta-mail ×2

ssl ×2

email ×1

greenmail ×1

self-signed ×1

servlets ×1

smtp ×1