如何在用户打开邮件时更改 DataTable?

How to change DataTable when user has open the mail?

我已经修改了我的代码,现在我正在发送一个带有内容 ID 的内联图像,其中将生成随机唯一 ID 并将其存储在数据库中。

SMTPMessage message = new SMTPMessage(session);
            MimeMultipart content = new MimeMultipart("related");
            String cid = UUID.randomUUID().toString();
            MimeBodyPart textPart = new MimeBodyPart();            
            message.setFrom(new InternetAddress(user));
            InternetAddress[] recipientAddress = new InternetAddress[recipientList.length];
            int counter = 0;
            for (String recipient : recipientList) {
                recipientAddress[counter] = new InternetAddress(recipient.trim());
                counter++;
            }

            message.setRecipients(Message.RecipientType.BCC, recipientAddress);
            message.setReplyTo(new InternetAddress[]{new InternetAddress("tanisha@boolment.com")});
            message.setSubject("News Letters");
            textPart.addHeader("Disposition-Notification-To", "tanishaa32@gmail.com");
            textPart.setContent("<html>" + body + "</html>", "text/html");
            MimeBodyPart imagePart = new MimeBodyPart();  
            imagePart.setContentID("<img src='teapot.jpg?'" + cid + " width='1px' height='1px'>");
            imagePart.attachFile("C:\Users\TANISHA AGARWAL\Documents\NetBeansProjects\EmailMarketing\build\web\resources\teapot.jpg");
            imagePart.setDisposition(MimeBodyPart.INLINE);
            imagePart.setHeader("Content-Id", cid);
            LOG.info("=========================================" + textPart.getContentID());
            content.addBodyPart(textPart);
            content.addBodyPart(imagePart);
            message.setContent(content);
            Transport.send(message);
            String Status;
            int Delievered;
            int opened;
            int clicked;
            int counters = 0;
            LOG.info("Notify Message is :" + SMTPMessage.NOTIFY_SUCCESS);
            if (SMTPMessage.NOTIFY_SUCCESS == 1) {
                Status = "Sent";
                Delievered = 1;
                opened = 0;
                clicked = 0;
//                for (int i = 0; i > counters; i++) {
//                    Delievered = i;
//                    LOG.info("Delievered: " + Delievered);
//                    counters++;
//                }
            } else {
                LOG.info("------------------------------------");
                Status = "Failed";
                Delievered = 0;
                opened = 0;
                clicked = 0;
            }

我在我的数据库中打开了一个列名称,该名称最初设置为 0,但是当用户打开邮件时,我希望它应该更新为用户打开邮件的次数。

请帮忙。

您需要一个 Web 应用程序来处理对隐藏图像的请求,从 URL 中提取有关原始消息的信息,并更新数据库。

请注意,某些邮件默认情况下不会显示此类图像,因此此方法充其量只是一种近似方法。