Java send mail in text and html

We posted earlier how send email using java email api.
Here is example of sending email in plain text and html format in same email.

  //get mail session
        Properties props = new Properties();
        props.put("mail.smtp.host", "localhost");
        Session session = session.getDefaultInstance(props);

        // create the messge.
        MimeMessage mimeMessage = new MimeMessage(session);

        MimeMultipart rootMixedMultipart = new MimeMultipart("mixed");
        mimeMessage.setContent(rootMixedMultipart);

        MimeMultipart nestedRelatedMultipart = new MimeMultipart("related");
        MimeBodyPart relatedBodyPart = new MimeBodyPart();
        relatedBodyPart.setContent(nestedRelatedMultipart);
        rootMixedMultipart.addBodyPart(relatedBodyPart);

        MimeMultipart messageBody = new MimeMultipart("alternative");
        MimeBodyPart bodyPart = null;
        for (int i = 0; i < nestedRelatedMultipart.getCount(); i++) {
            BodyPart bp = nestedRelatedMultipart.getBodyPart(i);
            if (bp.getFileName() == null) {
                bodyPart = (MimeBodyPart) bp;
            }
        }
        if (bodyPart == null) {
            MimeBodyPart mimeBodyPart = new MimeBodyPart();
            nestedRelatedMultipart.addBodyPart(mimeBodyPart);
            bodyPart = mimeBodyPart;
        }
        bodyPart.setContent(messageBody, "text/alternative");

        // Create the plain text part of the message.
        MimeBodyPart plainTextPart = new MimeBodyPart();
        plainTextPart.setText("This is plain text message", "UTF-8");
        messageBody.addBodyPart(plainTextPart);

        // Create the HTML text part of the message.
        MimeBodyPart htmlTextPart = new MimeBodyPart();
        htmlTextPart.setContent("<h1>This is plain HTML message", "text/html;charset=UTF-8");
        messageBody.addBodyPart(htmlTextPart);

        mimeMessage.setReplyTo(new InternetAddress[]{new InternetAddress("[email protected]")});
        mimeMessage.setFrom(new InternetAddress("[email protected]"));
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
        mimeMessage.setSentDate(new Date());
        mimeMessage.setSubject("Mixed message");
        Transport.send(mimeMessage);

Java bug

I am Java professional, working on Enterprise Java from last 8 years.

More Posts - Website

Follow Me:
TwitterLinkedIn