【问题标题】:java mail - use dynamic sender email addressjava mail - 使用动态发件人电子邮件地址
【发布时间】:2017-11-05 18:59:34
【问题描述】:

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

我使用 java mail 发送电子邮件,应用程序是使用 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());
            }
        };

任何想法,我哪里出错了?

【问题讨论】:

  • 你需要分享代码
  • 我已经用代码示例更新了我的问题。

标签: spring gmail jakarta-mail


【解决方案1】:

【讨论】:

  • 谢谢,我可以从所需的地址发送电子邮件。现在问题是发送的电子邮件不会反映在发送电子邮件的帐户中。
  • 如果以X登录并以Y发送,发送的消息是否保存在X帐户中?如果是这样,那不是您想要的,您需要以 Y 身份登录并以 Y 身份发送。
  • 是的,作为 Y 发送,保存在 X 帐户中。所以你的意思是我需要改变 mailsender bean 的属性(用户名和密码)?
  • 是的,您需要以Y而不是X登录。如果您以Y登录并以Y发送,它将保存在Y的帐户中。
  • 谢谢会检查这个。
猜你喜欢
  • 2014-09-22
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 2017-07-21
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多