fork download
  1. import java.io.IOException;
  2. import java.util.Date;
  3. import java.util.Properties;
  4.  
  5. import javax.mail.Authenticator;
  6. import javax.mail.Message;
  7. import javax.mail.MessagingException;
  8. import javax.mail.Multipart;
  9. import javax.mail.PasswordAuthentication;
  10. import javax.mail.Session;
  11. import javax.mail.Transport;
  12. import javax.mail.internet.AddressException;
  13. import javax.mail.internet.InternetAddress;
  14. import javax.mail.internet.MimeBodyPart;
  15. import javax.mail.internet.MimeMessage;
  16. import javax.mail.internet.MimeMultipart;
  17.  
  18. public class EmailAttachmentSender
  19. {
  20.  
  21. public static void sendEmailWithAttachments(String host, String port,
  22. final String userName, final String password, String toAddress,
  23. String subject, String message, String[] attachFiles)
  24. throws AddressException, MessagingException {
  25. // sets SMTP server properties
  26. Properties properties = new Properties();
  27. properties.put("mail.smtp.host", host);
  28. properties.put("mail.smtp.port", port);
  29. properties.put("mail.smtp.auth", "true");
  30. properties.put("mail.smtp.starttls.enable", "true");
  31. properties.put("mail.user", userName);
  32. properties.put("mail.password", password);
  33.  
  34. // creates a new session with an authenticator
  35. Authenticator auth = new Authenticator() {
  36. public PasswordAuthentication getPasswordAuthentication() {
  37. return new PasswordAuthentication(userName, password);
  38. }
  39. };
  40. Session session = Session.getInstance(properties, auth);
  41.  
  42. // creates a new e-mail message
  43. Message msg = new MimeMessage(session);
  44.  
  45. msg.setFrom(new InternetAddress(userName));
  46. InternetAddress[] toAddresses = { new InternetAddress(toAddress) };
  47. msg.setRecipients(Message.RecipientType.TO, toAddresses);
  48. msg.setSubject(subject);
  49. msg.setSentDate(new Date());
  50.  
  51. // creates message part
  52. MimeBodyPart messageBodyPart = new MimeBodyPart();
  53. messageBodyPart.setContent(message, "text/html");
  54.  
  55. // creates multi-part
  56. Multipart multipart = new MimeMultipart();
  57. multipart.addBodyPart(messageBodyPart);
  58.  
  59. // adds attachments
  60. if (attachFiles != null && attachFiles.length > 0) {
  61. for (String filePath : attachFiles) {
  62. MimeBodyPart attachPart = new MimeBodyPart();
  63.  
  64. try {
  65. attachPart.attachFile(filePath);
  66. } catch (IOException ex) {
  67. ex.printStackTrace();
  68. }
  69.  
  70. multipart.addBodyPart(attachPart);
  71. }
  72. }
  73.  
  74. // sets the multi-part as e-mail's content
  75. msg.setContent(multipart);
  76.  
  77. // sends the e-mail
  78. Transport.send(msg);
  79.  
  80. }
  81.  
  82. }
  83.  
  84. // SMTP info
  85. String host = "imap.blinkx.com";
  86. String port = "587";
  87. String mailFrom = "mmangum@rhythmone.com";
  88. String password = "Test123";
  89.  
  90. // message info
  91. String mailTo = "mmangum@rhythmone.com";
  92. String subject = "New email with attachments";
  93. String message = "<b><font color=\"red\">I have some attachments for you.</font></b>";
  94.  
  95. // attachments
  96. String[] attachFiles = new String[3];
  97. attachFiles[0] = "./test1.txt";
  98. attachFiles[1] = "./test2.txt";
  99.  
  100.  
  101. try
  102. {
  103. sendEmailWithAttachments(host, port, mailFrom, password, mailTo,
  104. subject, message, attachFiles);
  105. System.out.println("Email sent.");
  106. }
  107. catch (Exception ex)
  108. {
  109. System.out.println("Could not send email.");
  110. ex.printStackTrace();
  111. }
  112.  
  113.  
  114.  
  115.  
Runtime error #stdin #stdout #stderr 1.4s 329856KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/home/aYpHYO/prog.groovy: 8: unable to resolve class javax.mail.Multipart
 @ line 8, column 1.
   import javax.mail.Multipart;
   ^

/home/aYpHYO/prog.groovy: 13: unable to resolve class javax.mail.internet.InternetAddress
 @ line 13, column 1.
   import javax.mail.internet.InternetAddress;
   ^

/home/aYpHYO/prog.groovy: 6: unable to resolve class javax.mail.Message
 @ line 6, column 1.
   import javax.mail.Message;
   ^

/home/aYpHYO/prog.groovy: 7: unable to resolve class javax.mail.MessagingException
 @ line 7, column 1.
   import javax.mail.MessagingException;
   ^

/home/aYpHYO/prog.groovy: 15: unable to resolve class javax.mail.internet.MimeMessage
 @ line 15, column 1.
   import javax.mail.internet.MimeMessage;
   ^

/home/aYpHYO/prog.groovy: 16: unable to resolve class javax.mail.internet.MimeMultipart
 @ line 16, column 1.
   import javax.mail.internet.MimeMultipart;
   ^

/home/aYpHYO/prog.groovy: 12: unable to resolve class javax.mail.internet.AddressException
 @ line 12, column 1.
   import javax.mail.internet.AddressException;
   ^

/home/aYpHYO/prog.groovy: 11: unable to resolve class javax.mail.Transport
 @ line 11, column 1.
   import javax.mail.Transport;
   ^

/home/aYpHYO/prog.groovy: 14: unable to resolve class javax.mail.internet.MimeBodyPart
 @ line 14, column 1.
   import javax.mail.internet.MimeBodyPart;
   ^

/home/aYpHYO/prog.groovy: 5: unable to resolve class javax.mail.Authenticator
 @ line 5, column 1.
   import javax.mail.Authenticator;
   ^

/home/aYpHYO/prog.groovy: 9: unable to resolve class javax.mail.PasswordAuthentication
 @ line 9, column 1.
   import javax.mail.PasswordAuthentication;
   ^

/home/aYpHYO/prog.groovy: 10: unable to resolve class javax.mail.Session
 @ line 10, column 1.
   import javax.mail.Session;
   ^

12 errors