2013-04-19 2 views
1

Мне нужно иметь активность, которая отправляет почту в определенный момент процесса BPEL.WSO2 BPS - деятельность по рассылке

Есть ли «почтовая активность» или мне нужно закодировать какие-то веб-службы для вызова, чтобы я вызывал службу и позволял ей отправлять почту?

Может ли это решение использовать ESB для этого бизнеса?

Как подключить два (опять же с помощью веб-сервисов или есть более быстрый и простой способ связать их)?

Может ли это хорошее решение в этом случае добавить функцию ESB в BPS, чтобы добавить ее в транспортную функцию, не добавляя ESB только для этого?

Также я видел, что есть пример, который использует transportSender в axis2.xml, чем использование прокси-сервера, но, похоже, этот метод отправляет почту всегда на тот же адрес, который мне нужен, чтобы отправлять mail на объект (возможный cc и bcc) из параметров процесса (на предыдущем шаге я прочитал данные из БД и есть информация о адресе) может ли путь tensportSender следовать за ходом или мне нужно разработать почтовую службу?

Подсказка?

Благодаря

Лука

ответ

0

В настоящее время нет никакой рассылки активности в ДНС в качестве встроенного в деятельности.

Но да, вы можете достичь своей задачи, объединив ESB и BPS. Вы можете сделать это следующим образом. Сначала отправьте службу отправки электронной почты ESB в качестве прокси-сервера, а затем позвоните в эту службу, используя BPS. Для этой задачи лучше использовать отдельный ESB, так как я столкнулся с некоторыми трудностями при интеграции функций ESB в BPS.

1

Как уже упоминалось ранее, в настоящее время для WSO2 BPEL не существует почтовой активности, но вы можете получить эту функциональность, вызвав внешнюю веб-службу (DSS, AS) из рабочего процесса BPEL.

Я создал один рабочий процесс с такой функциональностью пару дней назад. В основном я создал и сервис Axis2, который является просто кодом Java для отправки электронной почты, в котором я могу предоставить такие параметры, как тема, контент и получатель, поэтому после вызова службы вы можете отправить электронное письмо на любой адрес электронной почты. Я развернул службу Axis2, упомянутую в WSO2 DSS, и вызвал ее из рабочего процесса BPEL, который позже я развернул в WSP2 BPS.

Java-код, который я использовал для Sendin электронной почты заключается в следующем:

import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class MailSender { 

    public static void main(String emailAddress, String content){ 

     String host = "smtp.gmail.com"; 
     String from = "[email protected]"; 
     String subject = "Subject example"; 



     Properties props = System.getProperties(); 
     props.put("mail.smtp.host", host); 
     props.put("mail.smtp.user", from); 
     props.put("mail.smtp.password", ""); 
     props.put("mail.smtp.port", "587"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.auth", "true"); 

     try{ 
      Session session = Session.getDefaultInstance(props, null); 
      InternetAddress to_address = new InternetAddress(emailAddress); 

      MimeMessage message = new MimeMessage(session);   
      message.setFrom(new InternetAddress(from)); 
      message.addRecipient(Message.RecipientType.TO, to_address); 
      message.setSubject(subject);   
      message.setContent(content, "text/html; charset=UTF-8"); 

      Transport transport = session.getTransport("smtp"); 
      transport.connect("smtp.gmail.com","[email protected]","Password"); 
      transport.sendMessage(message, message.getAllRecipients()); 
      transport.close(); 


      } 

      catch (MessagingException mex) { 
      System.out.println("send failed, exception: " + mex); 
      } 
    } 
} 
Смежные вопросы