Я нахожусь на VPN, но я не верю, что это проблема здесь.Я настроил свой брандмауэр, чтобы разрешить исходящие соединения, и мой McAfee игнорировал как Eclipse, так и Java.
Я знаю, это выглядит как дубликат.Я обещаю, что нет.Я пробовал буквально ВСЕ, что я обнаружил в Переполнении стека за последние 3 дня, и эта штука все еще дает мне:
javax.mail.MessagingException: Could not connect to SMTP host:
smtp.live.com, port: 587;
nested exception is:
java.net.SocketException: Permission denied: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at edu.montana.fs.MailAttachment.<init>(MailAttachment.java:67)
at edu.montana.fs.MainCall.main(MainCall.java:90)
Caused by: java.net.SocketException: Permission denied: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 4 more
Это мой почтовый код (с удаленными письмами и pwd):
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
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 MailAttachment {
public MailAttachment(String filepath, int errorCount, int recordCount) {
final String SMTP_HOST = "smtp.live.com";
final String SMTP_PORT = "587";
final String SMTP_USER = "user@outlook.com";
final String SMTP_PWD = "password";
final String from = "server@institute.edu";
final String to = "user@institute.edu";
final String subject = "Test";
final String messageContent = "Testing Message";
final Properties config = new Properties();
config.put("mail.smtp.user", SMTP_USER);
config.put("mail.smtp.pwd", SMTP_PWD);
config.put("mail.smtp.ssl.trust", SMTP_HOST);
config.put("mail.smtp.port", SMTP_PORT);
config.put("mail.smtp.starttls.enable", "true");
config.put("mail.smtp.auth", "true");
Authenticator auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(SMTP_USER, SMTP_PWD);
}
};
Session session = Session.getInstance(config, auth);
try {
final Message message = new MimeMessage(session);
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setFrom(new InternetAddress(from));
message.setSubject(subject);
message.setText(messageContent);
message.setSentDate(new Date());
Transport transport = session.getTransport("smtp");
transport.connect(SMTP_HOST, 587, SMTP_USER, SMTP_PWD);
transport.sendMessage(message, message.getAllRecipients());
System.out.println("Mail successfully sent: " + to);
transport.close();
//Transport.send(message);
} catch (final MessagingException ex) {
ex.printStackTrace();
}
}
}
Есть ли что-то очевидное, что я не правильно поступаю?Я прошел как минимум 5 полных реконструкций этого класса, и я открыт для предложений.Заранее спасибо.