我是春天和java邮件的新手,我可能知道java邮件发送的电子邮件是如何读取,退回或转发的。我用谷歌搜索只发现了如何发送邮件的方式。任何人都知道在哪里可以得到它的参考或给我一些例子吗?
谢谢。
以下是我的代码发送邮件与spring java mail:
弹簧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");
}
}
答案 0 :(得分:1)
没有标准的方式来做到这一点,这是全面接受和尊重的。不过我看到你有一些选择:
使用您的电子邮件地址在值中添加标题“Return-Receipt-To”。如果电子邮件的收件人有一个尊重此标题的客户端,则在打开电子邮件时将向您发送回执。请注意,这是不可靠的,因为用户总是可以决定不发送收据,即使他有一个支持它的客户。
将图像添加到从服务器加载的电子邮件中,并在包含用户电子邮件地址的图像上放置参数。加载电子邮件时,图像将从您的服务器加载。编写一个收集电子邮件参数的脚本,然后发送一个空白图像。然而,这也是不可靠的,因为许多邮件客户端如果希望下载图像而提示用户,并且他们总是可以选择不这样做。此外,一些(主要是较旧的)电子邮件客户端不支持图像。
也许最可靠的方法是不要在邮件中包含邮件。仅包含指向可以阅读邮件的网站的链接,并在链接中包含其电子邮件地址或唯一代码。通过这种方式,您确切地知道谁阅读了该消息。当然,这有一个缺点,即人们实际上并没有在他们的收件箱中收到消息,他们也可能选择不去网站阅读。
最终,我认为你将不得不想出一个创造性的解决方案来解决这个问题,除非你很高兴得到不稳定的结果。
答案 1 :(得分:0)
注册基于云的SMTP服务的免费帐户,例如Sendgrid,这将为您省去手动实施上一个答案中建议的内容。
您可以在免费套餐上每天发送400封电子邮件。您可以手动检查单个邮件的状态&#39;已打开&#39;,&#39;退回&#39;等等使用管理控制台,或者有各种API可用于以编程方式执行此操作(尽管有些可用于付费层)。
例如,当事件(打开,退回,点击等)发生时,他们的WebHooks API将回调您的服务器: