/* * ExtendedSendMail.java * * Created on den 18 september 2001, 19:00 */ package ip1.u9; import ip1.u7.a.*; import javax.mail.internet.*; import javax.mail.*; import javax.activation.*; import java.io.*; import ip1.u9.util.*; /** Tillser att ett e-postmeddelande sätts samman och skickas till mailservern * * @author Henrik Johansson, DS80 * @version ht2001 */ public class ExtendedSendMail extends SendMail { protected Attachment[] attachments; protected InternetAddress[] toAddr; protected InternetAddress[] ccAddr; protected InternetAddress[] bccAddr; protected String content; /** Skapar en ny ExtendedSendMail * * @param attachments Attachments som skall skickas med. * @param host Mailservern som skall förmedla meddelandet. * @param content meddelandets textinnehåll. * @param subject meddelandets ämnesrad. * @param toAddr meddelandets primära mottagare. * @param ccAddr meddelandets sekundära mottagare. * @param bccAddr meddelandets blinda mottagare. * @param fromAddr meddelandets avsändare. */ public ExtendedSendMail(Attachment[] attachments, String host, String content, String subject, InternetAddress[] toAddr, InternetAddress[] ccAddr, InternetAddress[] bccAddr, InternetAddress fromAddr) { super(host, content, subject, null, null); this.attachments = attachments; this.host = host; this.content = content; this.subject = subject; this.toAddr = toAddr; this.ccAddr = ccAddr; this.bccAddr = bccAddr; this.fromAddr = fromAddr; this.content = content; } /** Om det inte finns några attachments läggs innehållet till direkt, annarts anropas * makeMultipartMessage(Message) * *@param message Meddelanfet som skall få innehåll. */ protected void setContent(Message message) throws MessagingException { if(attachments.length == 0) super.setContent(message); else makeMultipartMessage(message); } /** Skapart ett multipart-meddelande. * *@param message Meddelande som skallm få multipartinnehåll. */ protected void makeMultipartMessage(Message message) throws MessagingException { Multipart multipart = new MimeMultipart(); setContent(multipart); setAttachmentsContent(multipart); message.setContent(multipart); } /** Lägger till textmeddelandedelen till ett multipartmeddelande. * *@param multipart Multipart som skall få innehåll. */ protected void setContent(Multipart multipart) throws MessagingException { BodyPart body = new MimeBodyPart(); body.setText(content); multipart.addBodyPart(body); } /** Lägger till attachments till ett multipartmeddelande. * *@param multipart Multipart som skall få attachments. */ protected void setAttachmentsContent(Multipart multipart) throws MessagingException { for(int i = 0; i < attachments.length; i++) { multipart.addBodyPart((BodyPart) attachments[i].getPart()); } } /** Lägger till mottagare (primära, sekundära och blinda) till meddelandet * *@param message Meddelande som skall få mottagare */ protected void addRecipients(Message message) throws MessagingException { if(toAddr != null) message.setRecipients(Message.RecipientType.TO, toAddr); if(ccAddr != null) message.setRecipients(Message.RecipientType.CC, ccAddr); if(bccAddr != null) { System.out.println(bccAddr); message.setRecipients(Message.RecipientType.BCC, bccAddr); } } }