0

我可以使用文件夹和存储成功访问我的电子邮件文件夹,但是当我尝试发送电子邮件时,我收到错误消息。

我用来尝试发送电子邮件的代码:

private static final String host = "smtp.google.com";
private static final String user = "fakeaddress@gmail.com";
private static final String pass = "fakepassword";

private static Properties props = null;
private static Session session = null;

public static void main(String[] args){

    props = new Properties();
    props.put("mail.smtp.host", host);
    props.put("mail.from", user);

    session = Session.getDefaultInstance(props, null);


    MimeMessage mime = new MimeMessage(session);
    mime.setFrom(new InternetAddress(user));
    mime.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    mime.setSubject("Email from: " + user);
    mime.setText(msg);
    Transport.send(mime);
}

我得到的错误信息:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port:smtp.google.com, 25; timeout -1;
  nested exception is:
        java.net.UnknownHostException: smtp.google.com
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
        at javax.mail.Service.connect(Service.java:345)
        at javax.mail.Service.connect(Service.java:226)
        at javax.mail.Service.connect(Service.java:175)
        at javax.mail.Transport.send0(Transport.java:253)
        at javax.mail.Transport.send(Transport.java:124)


        at com.mangopearapples.pcc.addons.EmailAddon.sendMail(EmailAddon.java:147)
        at com.mangopearapples.pcc.addons.EmailAddon.main(EmailAddon.java:106)


        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:491)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.net.UnknownHostException: smtp.google.com
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:585)
        at java.net.Socket.connect(Socket.java:534)
        at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:297)
        at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:229)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
        ... 13 more
Error getting email: Messaging error - Couldn't connect to host, port: smtp.google.com, 25; timeout -1

错误消息引用(EmailAddon.java:147)的类的行是:

Transport.send(mime);

如前所述,我可以使用 Folder.getUnreadMessageCount() 等文件夹方法成功访问电子邮件,因此我知道主机、电子邮件地址和密码不是问题。

谢谢。

4

0 回答 0