Aurigo Posted May 20, 2010 Posted May 20, 2010 Hello folks I am relatively new to groovy or JavaScript and therefore I got stuck with a situation in a coding and need some advice or help: The script shown below works quite fine (eMail-sending with multiple mail addresses and attachments). In the middle, there's a section starting with the comment "//add multipart...". There I would like to set the correct mail multipart type, but somehow the plugin does not accept this and the if-statement is not even entered. Could anybody "enlighten" me what error there must be in my code? Thanks a lot for your appreciated help! Martin ---Parameters--- {from= Newsletter|[email protected], to=Martin Brunner|[email protected], cc=null, bcc=null, subject=Testmail mit Attachments, plainText=Das wäre der reine Text mit ä und ö und ü oder auch Ä Ö und Ü - damit sich sehen kann, ob das auch korrekt durchkommt., htmlText= I'm testing the Sending Email HTML-Formatted utility for ScriptMaster. Works great! , attachments=scs1.png|/Users/Dekstop/scs1.png, smtpHost=mail.domain.com, portNumber=25, username=Username, password=123456, priority=3, delimitor=|} ---Script--- RegisterGroovy( "SendEMMultiPartAuthattachments( from ; to ; cc ; bcc ; subject ; plainText ; htmlText ; attachments ; smtpHost ; portNumber ; username ; password ; priority ; delimitor )" ; " import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.io.*; // set properties Properties props = new Properties(); props.setProperty("mail.smtp.host", smtpHost); if(username!=null && password!=null) { props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.smtps.auth", "true"); } // set session and message Session session = Session.getDefaultInstance(props, null); Message message = new MimeMessage(session); // set hheaders if(priority!=null) { message.addHeader("X-Priority", priority); } else { message.addHeader("X-Priority", "3"); } message.addHeader("X-Mailer", "FM-Mailer 1.0"); message.addHeader("Mime-Version", "1.0"); message.setSentDate(new Date()); message.setSubject(subject); // set from and reply to String fromline = (from); String fromdelims = "["+ (delimitor) +"]"; String[] FromParts = fromline.split(fromdelims); String fromName = FromParts [0]; String fromAddress = FromParts [1]; message.setFrom(new InternetAddress(fromAddress, fromName)); message.setReplyTo(new InternetAddress(fromAddress, fromName)); //------------------------------------------------------------------------ // set to addresses String mailAddressTo=(to); String[] ToAddresses = mailAddressTo.split("n"); InternetAddress[] mailAddress_TO = new InternetAddress [ToAddresses.length] ; for (int i=0; i String toline = ToAddresses[i]; String todelims = "["+ (delimitor) +"]"; String[] ToParts = toline.split(todelims); String ToName = ToParts [0]; String ToAddress = ToParts [1]; mailAddress_TO[i] = new InternetAddress(ToAddress, ToName); } message.addRecipients(Message.RecipientType.TO, mailAddress_TO); // set cc addresses if(cc!=null) { String mailAddressCC=(cc); String[] CCAddresses = mailAddressCC.split("n") ; InternetAddress[] mailAddress_CC = new InternetAddress [CCAddresses.length] ; for (int i=0; i String ccline = CCAddresses[i]; String ccdelims = "["+ (delimitor) +"]"; String[] CCParts = ccline.split(ccdelims); String CCName = CCParts [0]; String CCAddress = CCParts [1]; mailAddress_CC[i] = new InternetAddress(CCAddress, CCName); } message.addRecipients(Message.RecipientType.CC, mailAddress_CC); } // set bcc adresses if(bcc!=null) { String mailAddressBCC=(bcc); String[] BCCAddresses = mailAddressBCC.split("n"); InternetAddress[] mailAddress_BCC = new InternetAddress [bCCAddresses.length]; for (int i=0; i String bccline = BCCAddresses[i]; String bccdelims = "["+ (delimitor) +"]"; String[] BCCParts = bccline.split(bccdelims); String BCCName = BCCParts [0]; String BCCAddress = BCCParts [1]; mailAddress_BCC[i] = new InternetAddress(BCCAddress, BCCName); } message.addRecipients(Message.RecipientType.BCC, mailAddress_BCC); } //----------------------------------------------------------------- // add multipart alternatives (related=plain & html (& attachments), mixed = plain & attachments) MimeMultipart multipartRoot = new MimeMultipart("alternative"); MimeBodyPart contentRoot = new MimeBodyPart(); //if(htmlText!=null) { MimeMultipart multipartAlt = new MimeMultipart("related"); //} //if(attachments!=null && htmlText==null) { // MimeMultipart multipartAlt = new MimeMultipart("mixed"); //} // add plain text message if(htmlText==null && attachments==null) { message.setText(plainText, "ISO-8859-1"); } else { BodyPart messageBodyPart; messageBodyPart = new MimeBodyPart(); if(plainText!=null) { messageBodyPart.setText(plainText,"ISO-8859-1"); } else { messageBodyPart.setText("There is no plain Text part in this mail. Please update your mail client to view the message.","us-ascii"); } messageBodyPart.updateHeaders(); multipartRoot.addBodyPart(messageBodyPart); } // add html message message if(htmlText!=null) { messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(htmlText,"text/html"); messageBodyPart.updateHeaders(); multipartAlt.addBodyPart(messageBodyPart); } // add attachments if(attachments!=null) { String attachment=(attachments); String[] attachmentLine = attachment.split("n") ; for (int i=0; i String aline = attachmentLine[i]; String adelims = "["+ (delimitor) +"]"; String[] aParts = aline.split(adelims); String aName = aParts [0]; String aPath = aParts [1]; messageBodyPart = new MimeBodyPart(); FileDataSource fileDataSource = new FileDataSource(aPath); messageBodyPart.setDataHandler(new DataHandler(fileDataSource)); messageBodyPart.setFileName(aName); messageBodyPart.setHeader("Content-Disposition","inline; filename=" + aName); messageBodyPart.setHeader("Content-ID","<"+ aName +">"); multipartAlt.addBodyPart(messageBodyPart); } } //-------------------------------------------------------------------- // set Hierarchy (only, if html or attachments are there, not for plain text messages if(htmlText!=null || attachments!=null) { contentRoot.setContent(multipartAlt); multipartRoot.addBodyPart(contentRoot); message.setContent(multipartRoot); } //------------------------------------------------------------------- // Send with authentication if(username!=null && password!=null) { Transport transport = Session.getDefaultInstance(props).getTransport("smtp"); int port = Integer.valueOf(portNumber); transport.connect(smtpHost, port, username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } else { transport.connect(smtpHost); Transport.send(message); } return true" )
Recommended Posts
This topic is 5319 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now