JavaMail: Skift "From" baseret på "CC"
HejsaHar et lille problem med JavaMail.
Har fundet ud af at visse mailudbydere ikke accepterer at afsender og modtager af en mail er den samme.
Men hvis jeg benytter JavaMail således:
From = test@test.dk
To = Svend@test.dk
CC = test@test.dk
Så i den første mail vil der stå
From = test@test.dk
To = Svend@test.dk
CC = test@test.dk
Men i mail til CC vil der stå
From = test@test.dk
To = test@test.dk
Så vil overstående problem jo opstå. Hvordan kan jeg komme uden om dette?
Vil jo gerne have at den første modtager kan svare tilbage til test@test.dk. Men at kopien der bliver sendt til CC, får vedhæftet et andet afsender navn.
Koden jeg benytter ser således ud:
public static final void sendMail( Session session,
String from,
String to,
String subject,
String content,
String cc)
throws MessagingException {
//try{
Message message = new MimeMessage( session ) ;
message.setFrom( new InternetAddress(from) ) ;
message.setSubject( subject );
List adresses = splitString(to, ",");
InternetAddress dests[] = new InternetAddress[adresses.size()];
if (format == null || format.equals("")) {
format = "text/plain";
}
for (int i = 0; i < adresses.size(); i++) {
dests[i] = new InternetAddress((String) adresses.get(i));
if (log.isDebugEnabled()) log.debug( "dests[i]:" + adresses.get(i) ) ;
}
message.setRecipients(Message.RecipientType.TO, dests);
if (cc != null) {
List ccAdresses = splitString(cc, ",");
InternetAddress ccDests[] =
new InternetAddress[ccAdresses.size()];
for (int i = 0; i < ccAdresses.size(); i++) {
ccDests[i] =
new InternetAddress((String) ccAdresses.get(i));
}
System.out.println("Send mail");
message.setRecipients(Message.RecipientType.CC, ccDests);
}
Transport.send(message);