java从Office365发送javamail v.s.gmail:有什么不同?
我尝试从使用Office365的公司发送电子邮件。 我使用javax。邮寄去做。以下是我的方法: UPD:原始方法保留在下面。这是一个编辑过的方法,仍然是错误的:
public void composeAndSend(ByteArrayOutputStream baos) {
String to = "nameto@gmail.com";
String from = "namefrom@company.com";
String host = "smtp.office365.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.port", "587");
properties.setProperty("mail.smtp.starttls.enable", "true");
properties.setProperty("mail.smtp.ssl", "true");
properties.setProperty("mail.smtp.auth", "true");
Session session=Session.getInstance(properties);
session.setDebug(true);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Test message");
message.setText(baos.toString());
System.out.println("Sending message...");
Transport t = session.getTransport("smtp");
t.connect(host, 587, from, "password_of_office365_user");
t.sendMessage(message, message.getAllRecipients());
t.close();
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
第一版:
public void composeAndSend(ByteArrayOutputStream baos) {
String to = "nameto@gmail.com";
String from = "namefrom@company.com";
String host = "smtp.office365.com"; // tried also "ssl://smtp.office365.com"
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.port", "587");
properties.setProperty("mail.smtp.starttls.enable", "true");
properties.setProperty("mail.smtp.ssl", "true");
properties.setProperty("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( from, "password_of_office365_user" );
}
};
Session session=Session.getDefaultInstance(properties, authenticator);
//Session session=Session.getInstance(properties, authenticator); no difference...
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Test message");
message.setText(baos.toString());
System.out.println("Sending message...");
Transport.send(message);
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
我得到了javax。邮政MessaginException:未知SMTP主机:SMTP。办公室365。com强> 但是当我交换发送者和接收者的位置时,一切都很好。所以我想设置也可以。 谷歌服务器如何接受邮件并发送我的电子邮件,而Office365却不接受
共 (0) 个答案