Avatar billede extremecode Nybegynder
15. marts 2007 - 08:49 Der er 1 løsning

JavaMail: Skift "From" baseret på "CC"

Hejsa

Har 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);
Avatar billede extremecode Nybegynder
19. marts 2007 - 08:31 #1
Nå lukker spørgsmålet igen, da jeg har lavet en lidt anden løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester