通过使用Java邮件,用户尝试实现通过邮件接收查询的功能。但是,如果使用setFrom(),则它将使用经过身份验证的邮件地址而不是您设置的电子邮件覆盖。

当用户输入自己的邮件时,请将其邮件放入setFrom()中。但是每时每刻都会被覆盖。

我尝试将参数值作为字符串使用,但是没有用。
发送邮件的代码使用ajax。

context-mail.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);
}


没有错误,但是发件人的邮件地址是错误的。

最佳答案

通常,Gmail(和大多数邮件服务器)将只允许您使用与您的帐户凭据相对应的发件人地址。如果要使用其他“发件人”地址,请参见此Gmail help page

10-06 16:14