问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/4663040/from-email-address-changes-after-email-is-sent-gmail-postfix-relay