发送电子邮件后从电子邮件地址更改(GMail 后缀中继)

2022-01-23 00:00:00 gmail spring postfix-mta java jakarta-mail

I've reached the limits of my SMTP/postfix knowledge.

I'm sending mail using javamail 1.4. The javamail library is connecting to a local postfix process. The postfix process is configured to relay mail through gmail.

relayhost = smtp.gmail.com:587

Using the javamail lib, I'm setting the from address. But, when the mail ends up in my inbox, it is from the user that I'm using to log into the gmail server.

For example, in my code, I'm setting from to noreply@example.com. postfix is configured to relay mail through gmail, and it logs into the smtp server using user1 and a password. The mail ends up in my inbox as if it's from user1@example.com (and there is not mention of noreply@example.com when I view the "original" from my gmail inbox).

It may be worth mentioning that I'm using Spring 3.0's library (MimeMessageHelper) on top of javamail.

解决方案

Google is rewriting the headers on your message to match the SMTP session's authenticated user. You can register other email addresses with your GMail account ("custom From address"), in which case those other addresses will be accepted in the From header (though GMail will add the authenticated user in the Sender header). If you choose to use Google's SMTP server, there appears to be no way around this.

相关文章