【问题标题】:javamail.setFrom() is not working in my spring projectjavamail.setFrom() 在我的春季项目中不起作用
【发布时间】: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


    【解决方案1】:

    一般来说,Gmail(和大多数邮件服务器)只允许您使用与您的帐户凭据相对应的发件人地址。如果您想使用不同的发件人地址,请参阅此Gmail help page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      相关资源
      最近更新 更多