Trying out Spring’s email support , I wanted to
send a simple message to a single recipient using code like:
1
2
3
4
SimpleMailMessage mailMessage = new SimpleMailMessage ()
mailMessage . to = 'me@trash-mail.com'
// ...
mailSender . send ( mailMessage )
To my astonishment this threw an exception:
1
2
3
4
5
6
7
8
9
10
11
12
13
javax . mail . internet . AddressException : Missing local name in string ``@ ''
at javax . mail . internet . InternetAddress . checkAddress ( InternetAddress . java : 1209 )
at javax . mail . internet . InternetAddress . parse ( InternetAddress . java : 1091 )
at javax . mail . internet . InternetAddress . parse ( InternetAddress . java : 633 )
at javax . mail . internet . InternetAddress . parse ( InternetAddress . java : 610 )
at org . springframework . mail . javamail . MimeMessageHelper . parseAddress ( MimeMessageHelper . java : 707 )
at org . springframework . mail . javamail . MimeMessageHelper . setTo ( MimeMessageHelper . java : 593 )
at org . springframework . mail . javamail . MimeMailMessage . setTo ( MimeMailMessage . java : 109 )
at org . springframework . mail . SimpleMailMessage . copyTo ( SimpleMailMessage . java : 194 )
at org . springframework . mail . javamail . JavaMailSenderImpl . send ( JavaMailSenderImpl . java : 305 )
at org . springframework . mail . javamail . JavaMailSenderImpl . send ( JavaMailSenderImpl . java : 297 )
at org . springframework . mail . MailSender $send . call ( Unknown Source )
...
Taking a closer look, I recognized that the setTo
method of SimpleMailMessage
is overloaded as follows:
1
2
public void setTo ( String to )
public void setTo ( String [] to )