有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案