Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何在JavaEE中向注册用户发送电子邮件_Email_Jakarta Ee_Asynchronous_Sendmail - Fatal编程技术网

Email 如何在JavaEE中向注册用户发送电子邮件

Email 如何在JavaEE中向注册用户发送电子邮件,email,jakarta-ee,asynchronous,sendmail,Email,Jakarta Ee,Asynchronous,Sendmail,我想向注册用户发送电子邮件激活链接。我已经设置了我的Sendmail.class,它工作得非常好 以下是场景: 用户通过restful客户端提供信息来请求注册 restful端点获取执行某些业务操作的请求,并向注册用户的电子邮件发送一个计算代码,并返回一个响应,表示“已成功注册” 问题是我不想等待Sendmail.class完成发送过程(可能会失败)以返回“成功注册的邮件” 我如何使用JavaEE处理这个过程 将电子邮件发送代码放在线程中。即使您可以轻松使用SwingWorker: SwingW

我想向注册用户发送电子邮件激活链接。我已经设置了我的
Sendmail.class
,它工作得非常好

以下是场景:

  • 用户通过restful客户端提供信息来请求注册
  • restful端点获取执行某些业务操作的请求,并向注册用户的电子邮件发送一个计算代码,并返回一个响应,表示“已成功注册”
  • 问题是我不想等待
    Sendmail.class
    完成发送过程(可能会失败)以返回“成功注册的邮件”


    我如何使用JavaEE处理这个过程

    将电子邮件发送代码放在线程中。即使您可以轻松使用SwingWorker:

    SwingWorker worker = new SwingWorker() {
            @Override
            protected void done() {
            }
    
            @Override
            protected Object doInBackground() throws Exception {
               // Send your e-mail here.
            }
        };
        worker.execute();
    

    将发送电子邮件的代码放入方法中

    例如:

    @Stateless
    public class EmailSender {
    
        @Asynchronous
        public void sendMail(...) {
            // send mail here
        }
    
    }
    
    从您执行业务逻辑的地方:

    @Inject
    private EmailSender emailSender;
    
    public Foo myBusiness() {
        // Compute stuff
    
        emailSender.sendMail(stuff); // returns immediately 
    
        // do other stuff if needed
    }
    

    有关更多信息,请参阅。

    swing worker与服务器端的GUI iam相关,我想使用JEE标准。这种方法似乎不好,因为1000个用户可能会请求激活…您可以使用普通线程,SwingWorker只是一个例子,而且很简单。这里的想法是在发送电子邮件时使用线程。internet上的一些研究讨论了发送异步邮件的JMS。正如我在上一条消息中所说的,使用线程不利于可伸缩性。因此,我没有关于使用JMS实现此功能的idiea帮助请我设法使用JMS解决此问题。它非常有效,有利于可伸缩性。@Arjan Tijms,链接对我不起作用,请更新好吗