gpt4 book ai didi

java - Spring Java Mail - 如何知道发送的邮件被收件人阅读、退回或转发?

转载 作者:行者123 更新时间:2023-12-01 11:57:12 28 4
gpt4 key购买 nike

我是 spring 和 java mail 的新手,我可以知道 java mail 发送的电子邮件是如何阅读、退回或转发的。我用谷歌搜索只找到了如何发送邮件的方法。有人知道在哪里可以找到有关它的引用资料或为我提供一些示例吗?

谢谢。

下面是我用 spring java mail 发送邮件的代码:

Spring-Mail.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="xxxxxxxx@gmail.com" />
<property name="password" value="xxxxxx" />

<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtp.from">xxxxxxxx@hotmail.com</prop>
</props>
</property>
</bean>

<bean id="mailMail" class="com.penril.my.MailMail">
<property name="mailSender" ref="mailSender" />
</bean>

</beans>

MailMail.java

public class MailMail
{
private JavaMailSender mailSender;

public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}

public void sendMail(String from, String to, String subject, String msg) {

MimeMessage message = mailSender.createMimeMessage();

try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);

helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(msg);

mailSender.send(message);

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

MainClass.java

public class MainClass
{
public static void main( String[] args )
{
ApplicationContext context =
new ClassPathXmlApplicationContext("Spring-Mail.xml");

MailMail mm = (MailMail) context.getBean("mailMail");
mm.sendMail("xxx123xxx@gmail.com",
"xxx234xxx@hotmail.co1m",
"Testing123",
"Testing only \n\n Hello Spring Email Sender");

}
}

最佳答案

没有一种标准方法可以被广泛接受和尊重。不过,我发现您有一些选择:

添加标题“Return-Receipt-To”,并在值中包含您的电子邮件地址。如果电子邮件收件人的客户遵守此 header ,则打开电子邮件时将向您发送回执。请注意,这是不可靠的,因为用户始终可以决定不发送收据,即使他有支持它的客户端。

将图像添加到从服务器加载的电子邮件中,并在图像上添加包含用户电子邮件地址的参数。加载电子邮件时,图像将从您的服务器加载。编写一个脚本来收集电子邮件参数,然后发送一个空白图像。然而,这也不可靠,因为许多邮件客户端会提示用户是否希望下载图像,而他们总是可以选择不下载。此外,一些(大多数是较旧的)电子邮件客户端不支持图像。

也许最可靠的方法是根本不在您的电子邮件中包含该消息。仅包含可阅读消息的网站链接,并在链接中包含他们的电子邮件地址或唯一代码。这样,您就可以准确地知道谁阅读了该消息。当然,这有一个缺点,即人们实际上并没有在收件箱中收到邮件,而且他们也可能选择不访问网站来阅读邮件。

最终,我认为您必须想出一个创造性的解决方案来解决这个问题,除非您很高兴得到参差不齐的结果。

关于java - Spring Java Mail - 如何知道发送的邮件被收件人阅读、退回或转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28361340/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com