2016-08-30 7 views
0

Я застрял за корпоративным брандмауэром, который не позволит мне отправлять электронную почту с помощью обычных средств, таких как Java Mail API или Apache Commons Email, даже другим людям внутри организации (это все, что я хочу в любом случае). Но мой Outlook 2010, очевидно, может отправлять эти письма. Мне было интересно, есть ли способ автоматизировать Outlook 2010 с помощью Java-кода, чтобы Outlook мог отправлять электронные письма? Я знаю, что такие вещи, как «mailto», можно использовать для всплывающего диалогового окна «Перспектива отправки по умолчанию» с предварительно заполненной информацией, но я ищу способ, чтобы операция отправки происходила за кулисами. Спасибо за любую информацию.Как отправить электронное письмо из Outlook через Java?

ответ

1
Process p = Runtime.getRuntime().exec("cmd /C start outlook "); 
+2

Не будет ли это запустить GUI Outlook? Это похоже на то, что ищет OP. Извините, но я больше не мог внести свой вклад. –

0

Я не думаю, что есть какой-либо способ сделать то, что вы хотите, используя Outlook.

Предположительно, ваш почтовый сервер также находится за корпоративным межсетевым экраном. Если вы используете Outlook для своего клиента, вы, вероятно, используете Exchange для своего сервера. Exchange можно настроить для поддержки стандартного SMTP-протокола для отправки почты, что позволит использовать JavaMail. Если вы не можете настроить сервер Exchange для поддержки SMTP, вы все равно сможете использовать Exchange Web Services. Если это не сработает, возможно, вам понадобится использовать один из JavaMail Third Party Products, который поддерживает проприетарный почтовый протокол Microsoft.

3

Вы можете отправить электронную почту через внешний вид с javamail использовать конфигурации, описанные на Outlook's official site.

Вот небольшой демо-код

public static void main(String[] args) { 
    final String username = "your email"; // like [email protected] 
    final String password = "*********"; // password here 

    Properties props = new Properties(); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", "smtp-mail.outlook.com"); 
    props.put("mail.smtp.port", "587"); 

    Session session = Session.getInstance(props, 
     new javax.mail.Authenticator() { 
     @Override 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(username, password); 
     } 
     }); 
    session.setDebug(true); 

    try { 

     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress(username)); 
     message.setRecipients(Message.RecipientType.TO, 
      InternetAddress.parse("receiver mail")); // like [email protected] 
     message.setSubject("Test"); 
     message.setText("HI you have done sending mail with outlook"); 

     Transport.send(message); 

     System.out.println("Done"); 

    } catch (MessagingException e) { 
     throw new RuntimeException(e); 
    } 
} 

.
Примечание: Я проверил это с Javamail API 1.5.6

+0

Я думаю, что OP не означало использовать сервер электронной почты Microsoft, но программу клиента электронной почты Microsoft. Смутно оба названы «мировоззрением». – JosefScript

Смежные вопросы