2

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.

Dave Jarvis
  • 30,436
  • 41
  • 178
  • 315
three-cups
  • 4,375
  • 3
  • 31
  • 41
  • I would try sending the same e-mail manually, that is without Java/Spring code at all. In your command line try with "telnet smtp.local.network 110", etc. If you get the same problem, it means the problem is with the SMTP infrastructure. Otherwise you would want to look into how you send e-mails in Java. – Grzegorz Oledzki Jan 12 '11 at 07:29

1 Answers1

9

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.

dkarp
  • 14,483
  • 6
  • 58
  • 65