Есть аккаунт Office 365. Пробовал отправить почту программами на java, которые смог найти в интернете (через smtp.office365.com). Всегда получается timeout exception.
У вас есть примеры исходников, которые точно работают?
Пример
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SendEmailOffice365 {
private static final Logger LOGGER = Logger.getAnonymousLogger();
private static final String SERVER_HOST = "smtp.office365.com";
private static final int SERVER_PORT = 587;
private static final String LOGIN = "========";
private static final String PASSWORD = "========";
private static final String from = "========";
private static final String to = "========";
private static final String subject = "Test";
private static final String messageContent = "Test message";
private static void sendEmail() {
final Session session = Session.getInstance(getEmailProperties(), new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(LOGIN, PASSWORD);
}
});
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.send(message);
} catch (final MessagingException ex) {
LOGGER.log(Level.WARNING, "Error sending message: " + ex.getMessage(), ex);
}
}
private static Properties getEmailProperties() {
final Properties config = new Properties();
config.put("mail.smtp.auth", "true");
config.put("mail.smtp.starttls.enable", "true");
config.put("mail.transport.protocol", "smtp");
config.put("mail.smtp.host", SERVER_HOST);
config.put("mail.smtp.port", SERVER_PORT);
config.put("mail.smtp.user", LOGIN);
config.put("mail.smtp.password", PASSWORD);
config.put("mail.smtp.connectiontimeout", "2000");
config.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
return config;
}
public static void main(final String[] args) {
sendEmail();
}
}