Spring java邮件-使用动态发件人电子邮件地址

Spring java邮件-使用动态发件人电子邮件地址,spring,gmail,jakarta-mail,Spring,Gmail,Jakarta Mail,我正在使用谷歌的电子邮件服务(我的自定义域)。我想使用动态发件人电子邮件地址,即当用户注册时,他应该从register@example.com当他下订单时,应收到orders@example.com 我使用JavaMail发送电子邮件,应用程序是使用spring框架开发的。发送电子邮件时,只会从spring配置xml中指定的用户名接收电子邮件 弹簧配置: <bean id="mailSender" class="org.springframework.mail.javamail.JavaM

我正在使用谷歌的电子邮件服务(我的自定义域)。我想使用动态发件人电子邮件地址,即当用户注册时,他应该从register@example.com当他下订单时,应收到orders@example.com

我使用JavaMail发送电子邮件,应用程序是使用spring框架开发的。发送电子邮件时,只会从spring配置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="username" />
    <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>

MimeMessagePreparator preparator = new MimeMessagePreparator() {
            public void prepare(MimeMessage mimeMessage) throws Exception {
                mimeMessage.setRecipient(Message.RecipientType.TO,
                        new InternetAddress(order.getCustomer().getEmailAddress()));
                mimeMessage.setFrom(new InternetAddress("mail@mycompany.com"));
                mimeMessage.setText(
                        "Dear " + order.getCustomer().getFirstName() + " "
                            + order.getCustomer().getLastName()
                            + ", thank you for placing order. Your order number is "
                            + order.getOrderNumber());
            }
        };

真的
真的
MimeMessagePreparator preparator=新的MimeMessagePreparator(){
public void prepare(MimeMessage MimeMessage)引发异常{
mimessage.setRecipient(Message.RecipientType.TO,
新的InternetAddress(order.getCustomer().getEmailAddress());
mimessage.setFrom(新的InternetAddress(“mail@mycompany.com"));
mimessage.setText(
“亲爱的”+订单.getCustomer().getFirstName()+“”
+order.getCustomer().getLastName()
+,谢谢您下订单。您的订单号是
+getOrderNumber());
}
};

你知道我哪里出错了吗?

你是否遵循了?

你需要分享代码我已经用代码示例更新了我的问题。谢谢,我可以从所需的地址发送电子邮件。现在问题是发送电子邮件不会反映在发送电子邮件的帐户中。如果你以X身份登录并以Y身份发送,发送的邮件是否保存在X帐户中?如果是这样,并且这不是您想要的,您需要以Y身份登录并以Y身份发送。是的,以Y身份发送保存在X帐户中。所以你的意思是我需要更改mailsender bean的属性(用户名和密码)?是的,你需要以Y而不是X的身份登录。如果你以Y的身份登录并以Y的身份发送,它将保存在Y的帐户中。谢谢你的检查。