【发布时间】:2019-09-06 09:55:24
【问题描述】:
通过使用Java邮件,用户尝试实现通过邮件接收查询的功能。但是,如果您使用 setFrom(),它会被经过身份验证的邮件地址覆盖,而不是您设置的电子邮件。
当用户输入自己的邮件时,将用户的邮件放入setFrom()。但它每时每刻都会被覆盖。
我尝试将参数值作为字符串,但它不起作用。 发送邮件的代码使用了ajax。
上下文邮件.xml
<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="email" />
<property name="password" value="password" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
控制器
@RequestMapping(value = "/mail")
public void mailSend(HttpServletRequest request, HttpServletResponse response,
ModelMap model, @RequestParam Map param) throws Exception {
SessionVO session = getSessionVO(request, response);
final Map<String, String> qna = (Map<String, String>)((List)qnaService.selectQna(param).get("qnaResultList")).get(0);
final List<Map> qnaFile= qnaService.selectQnaFile(param);
final Map[] file = new HashMap[qnaFile.size()];
for(int i=0;i<qnaFile.size();i++){
FileVO vo=new FileVO();
vo.setFileId((String)qnaFile.get(i).get("fileId"));
file[i]=fileService.getimgfile(vo, response);
}
logger.info(qna+"");
logger.info(qnaFile+"");
final MimeMessagePreparator preparator = new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
helper.setSentDate(new Date());
helper.setFrom(qna.get("email"), qna.get("userName")); //
helper.setTo(new InternetAddress("auth email"));
helper.setSubject(qna.get("userName")+"-"+qna.get("qnaType"));
helper.setText(qna.get("content"), true);
for (Map m : file) {
helper.addAttachment((String)m.get("fileNm"), (File)m.get("file"));
}
}
};
mailSender.send(preparator);
}
没有错误,但是发件人的邮件地址错误。
【问题讨论】:
标签: javascript java ajax spring jakarta-mail