WSO2 BPS - почтовая активность

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

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

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

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

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

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

Любой намек?

Спасибо

Лука


person Luca Gioppo    schedule 19.04.2013    source источник


Ответы (2)


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

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

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

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);
            }
    }
}
person Jose Maria    schedule 10.07.2013

В настоящее время в BPS нет встроенной почтовой активности.

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

person Hasitha Aravinda    schedule 13.05.2013