Поддержка Spring 3.0 SimpleMailMessage - PullRequest
       5

Поддержка Spring 3.0 SimpleMailMessage

0 голосов
/ 08 декабря 2011

Я получаю электронные письма на свою учетную запись gmail, но адрес отправителя всегда принадлежит мне, а не адресу электронной почты этого человека, даже если я жестко закодировал его в классе реализации, поскольку message.setFrom("somebody@hotmail.com"); по-прежнему не работает.Есть идеи?

@Service("mailService")
    public class MailService {

        @Autowired
        private MailSender mailSender;
        @Autowired
        private SimpleMailMessage alertMailMessage;

        public void sendMail(String from, String to, String subject, String body) {

            SimpleMailMessage message = new SimpleMailMessage();

            message.setFrom(from);
            message.setTo(to);
            message.setSubject(subject);
            message.setText(body);
            mailSender.send(message);

        }

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="smtp.gmail.com"/>
            <property name="port" value="25"/>
            <property name="username" value="xxx@gmail.com"/>
            <property name="password" value="xxxx"/>
            <property name="javaMailProperties">
                <props>
                    <!-- Use SMTP transport protocol -->
                    <prop key="mail.transport.protocol">smtp</prop>
                    <!-- Use SMTP-AUTH to authenticate to SMTP server -->
                    <prop key="mail.smtp.auth">true</prop>
                    <!-- Use TLS to encrypt communication with SMTP server -->
                    <prop key="mail.smtp.starttls.enable">true</prop>
                    <prop key="mail.debug">true</prop>
                </props>
            </property>
        </bean>

1 Ответ

0 голосов
/ 08 декабря 2011

Не думаю, что это проблема Spring, а скорее функция безопасности Gmail. Вы в основном пытаетесь отправлять электронные письма через Gmail со многими "От", используя Spring?

Страницы поддержки Gmail говорят:

Примечание для пользователей IMAP / POP: если вы получаете доступ к Gmail через POP или IMAP почтовый клиент (например, Outlook) и хотел бы отправлять сообщения с Пользовательский адрес «от», у вас есть два варианта. Мы рекомендуем вам настройте почтовый клиент с двумя исходящими SMTP-серверами, один для Gmail и один для вашего другого адреса.

Или вы можете использовать исходящие Gmail серверы с другим адресом «от». Если вы уже настроили альтернативный адрес, ваше сообщение будет отправлено от: otheraddress@domain.com, отправитель: username@gmail.com, независимо от какой пользователь из конфигурации вы выбрали.

Пользовательская функция «От:» работает, только если у вас уже есть аккаунт связан с альтернативным адресом. Чтобы отправить почту с другим Gmail имя пользователя, вы должны сначала зарегистрироваться на этот адрес.

Для этого вам необходимо сначала настроить эти адреса электронной почты в своей учетной записи Gmail. Один настроенный, отправленные письма должны выглядеть примерно так:

От: somebody@hotmail.com Отправитель: xxx@gmail.com

В почтовых клиентах / интерфейсах веб-почты ваши получатели читают что-то вроде:

от somebody@hotmail.com через xxx@gmail.com

Таким образом, оригинальный адрес отправителя всегда отображается в любом случае.

...