我可以使用文件夹和存储成功访问我的电子邮件文件夹,但是当我尝试发送电子邮件时,我收到错误消息。
我用来尝试发送电子邮件的代码:
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() 等文件夹方法成功访问电子邮件,因此我知道主机、电子邮件地址和密码不是问题。
谢谢。