Avatar billede esset Nybegynder
20. november 2003 - 09:17 Der er 4 kommentarer og
1 løsning

HTML tekst til Multipart

Når jeg bruger metoden setContent på et Message objekt, hvorledes kan jeg så få placeret HTML tekst i den Multipart object som setContent metoden kræver. HTML teksten skal sættes via et metode kald og ikke skrives direkte i setContent kalden (som vist i eksemplerne her).
Avatar billede arne_v Ekspert
20. november 2003 - 10:46 #1
Har du set det her eksempel:

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SendMultipartEmail {
    public static void main(String[] args) {
        sendMultipartEmail();
    }
    public static void sendMultipartEmail() {
        try {
            Properties props = System.getProperties();
            props.put("mail.smtp.host", "192.168.1.10");
            Session session = Session.getDefaultInstance(props, null);
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress("nn@somewhere.dk"));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress("nn@somewhere.dk"));
            message.setSubject("Test");
            MimeBodyPart mpart1 = new MimeBodyPart();
            mpart1.setText("Linie 1\n" +
                          "Linie 2");
            MimeBodyPart mpart2 = new MimeBodyPart();
            mpart2.setContent("<H1>Overskrift</H1>\n" +
                              "Billede:\n" +
                              "<IMG SRC='http://www.eksperten.dk/img/eksperten_logo_new.gif'>",
                              "text/html");
            MimeMultipart mpart = new MimeMultipart();
            mpart.addBodyPart(mpart1);
            mpart.addBodyPart(mpart2);
            message.setContent(mpart);
            Transport.send(message);
        } catch (AddressException e) {
        } catch (MessagingException e) {
        }
    }
}
Avatar billede esset Nybegynder
21. november 2003 - 14:23 #2
Det hjalp desværre ikke. Se min kode nedenfor:

package com.csc.sapportal.sendmail;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.internet.InternetAddress;

public class SendMail {

    private String SMTP;
    private String from;
    private String fromName;
    private String to;
    private String subject;
    private MimeBodyPart body;

    /**
    * @return
    */
    public MimeBodyPart getBody() {
        return this.body;
    }

    /**
    * @return
    */
    public String getFrom() {
        return this.from;
    }

    /**
    * @return
    */
    public String getFromName() {
        return this.fromName;
    }

    /**
    * @return
    */
    public String getSMTP() {
        return this.SMTP;
    }

    /**
    * @return
    */
    public String getSubject() {
        return this.subject;
    }

    /**
    * @return
    */
    public String getTo() {
        return this.to;
    }

    /**
    * @param string
    */
    public void setBody(String body) {
        this.body = new MimeBodyPart();
        try {
            this.body.setText(body);
        } catch (MessagingException e) {
        }
    }

    /**
    * @param string
    */
    public void setFrom(String from) {
        this.from = from;
    }

    /**
    * @param string
    */
    public void setFromName(String fromName) {
        this.fromName = fromName;
    }

    /**
    * @param string
    */
    public void setSMTP(String SMTP) {
        this.SMTP = SMTP;
    }

    /**
    * @param string
    */
    public void setSubject(String subject) {
        this.subject = subject;
    }

    /**
    * @param string
    */
    public void setTo(String to) {
        this.to = to;
    }

    public boolean send() {
        boolean sendMail = true;

        try {
            Properties props = new Properties();
            props.put("mail.smtp.host", getSMTP());

            Session mailsession = Session.getDefaultInstance(props, null);

            Message msg = new MimeMessage(mailsession);
            msg.setFrom(new InternetAddress(getFrom(), getFromName()));
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress(getTo()));
            msg.setSubject(getSubject());
            MimeMultipart mpart = new MimeMultipart();
            mpart.addBodyPart(getBody());
            msg.setContent(mpart);
            Transport.send(msg);
            return true;

        } catch (AddressException e) {
            return false;
        } catch (MessagingException e) {
            return false;
        } catch (java.io.UnsupportedEncodingException e) {
            return false;
        }
    }
   
    public static void main(String[] args) {
        SendMail mail = new SendMail();
        mail.setSMTP("127.0.0.0");
        mail.setFrom("test@test.dk");
        mail.setFromName("Test user");
        mail.setTo("test@test.com");
        mail.setSubject("Test af mail");
        mail.setBody("<H1>Overskrift</H1>");
        mail.send();
    }
}
Avatar billede arne_v Ekspert
21. november 2003 - 14:42 #3
Ja - den bliver vel sendt som text p.g.a.:

    public void setBody(String body) {
        this.body = new MimeBodyPart();
        try {
            this.body.setText(body);
        } catch (MessagingException e) {
        }
    }

Prøv med:

    public void setBody(String body) {
        this.body = new MimeBodyPart();
        try {
            this.body.setContent(body, "text/html");
        } catch (MessagingException e) {
        }
    }
Avatar billede esset Nybegynder
21. november 2003 - 15:49 #4
Det virkede ;o) - men jeg kan ikke give dig point. Smid lige en linie som svar.....
Avatar billede arne_v Ekspert
21. november 2003 - 16:19 #5
svar
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