List of usage examples for javax.mail Message getFrom
public abstract Address[] getFrom() throws MessagingException;
From source file:com.app.test.mail.DefaultMailSenderTest.java
@Test public void testPopulatePaymentFailedMessage() throws Exception { _initializeVelocityTemplate(_clazz, _classInstance); Method populateMessage = _clazz.getDeclaredMethod("_populateMessage", String.class, String.class, String.class, Session.class); populateMessage.setAccessible(true); Message message = (Message) populateMessage.invoke(_classInstance, "user@test.com", "Payment Failed", "payment_failed_email.vm", _session); Assert.assertEquals("Auction Alert <test@test.com>", message.getFrom()[0].toString()); Assert.assertEquals("Payment Failed", message.getSubject()); Assert.assertEquals(_PAYMENT_FAILED_EMAIL, message.getContent()); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress("user@test.com"); Assert.assertArrayEquals(internetAddresses, message.getRecipients(Message.RecipientType.TO)); }
From source file:com.app.test.mail.DefaultMailSenderTest.java
@Test public void testPopulateCardDetailsMessage() throws Exception { _initializeVelocityTemplate(_clazz, _classInstance); Method populateMessage = _clazz.getDeclaredMethod("_populateMessage", String.class, String.class, String.class, Session.class); populateMessage.setAccessible(true); Message message = (Message) populateMessage.invoke(_classInstance, "user@test.com", "Card Details Updated", "card_details_email.vm", _session); Assert.assertEquals("Auction Alert <test@test.com>", message.getFrom()[0].toString()); Assert.assertEquals("Card Details Updated", message.getSubject()); Assert.assertEquals(_CARD_DETAILS_EMAIL, message.getContent()); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress("user@test.com"); Assert.assertArrayEquals(internetAddresses, message.getRecipients(Message.RecipientType.TO)); }
From source file:com.app.test.mail.DefaultMailSenderTest.java
@Test public void testPopulateResubscribeMessage() throws Exception { _initializeVelocityTemplate(_clazz, _classInstance); Method populateMessage = _clazz.getDeclaredMethod("_populateMessage", String.class, String.class, String.class, Session.class); populateMessage.setAccessible(true); Message message = (Message) populateMessage.invoke(_classInstance, "user@test.com", "Resubscribe Successful", "resubscribe_email.vm", _session); Assert.assertEquals("Auction Alert <test@test.com>", message.getFrom()[0].toString()); Assert.assertEquals("Resubscribe Successful", message.getSubject()); Assert.assertEquals(_RESUBSCRIBE_EMAIL, message.getContent()); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress("user@test.com"); Assert.assertArrayEquals(internetAddresses, message.getRecipients(Message.RecipientType.TO)); }
From source file:com.app.test.mail.DefaultMailSenderTest.java
@Test public void testPopulateCancellationMessage() throws Exception { _initializeVelocityTemplate(_clazz, _classInstance); Method populateMessage = _clazz.getDeclaredMethod("_populateMessage", String.class, String.class, String.class, Session.class); populateMessage.setAccessible(true); Message message = (Message) populateMessage.invoke(_classInstance, "user@test.com", "Cancellation Successful", "cancellation_email.vm", _session); Assert.assertEquals("Auction Alert <test@test.com>", message.getFrom()[0].toString()); Assert.assertEquals("Cancellation Successful", message.getSubject()); Assert.assertEquals(_CANCELLATION_EMAIL, message.getContent()); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress("user@test.com"); Assert.assertArrayEquals(internetAddresses, message.getRecipients(Message.RecipientType.TO)); }
From source file:com.crawlersick.nettool.GetattchmentFromMail1.java
public boolean fetchmailforattch() throws IOException, MessagingException { boolean fetchtest = false; Properties props = new Properties(); props.setProperty("mail.store.protocol", "imaps"); try {// w w w. ja v a2 s . c o m Session session = Session.getInstance(props, null); Store store = session.getStore(); store.connect(IMapHost, MailId, MailPassword); Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); totalmailcount = inbox.getMessageCount(); Message msg = null; for (int i = totalmailcount; i > 0; i--) { fromadd = ""; msg = inbox.getMessage(i); Address[] in = msg.getFrom(); for (Address address : in) { fromadd = address.toString() + fromadd; //System.out.println("FROM:" + address.toString()); } if (fromadd.matches("admin@cronmailservice.appspotmail.com") && msg.getSubject().matches( "ThanksToTsukuba_World-on-my-shoulders-as-I-run-back-to-this-8-Mile-Road_cronmailservice")) break; } if (fromadd.equals("'")) { log.log(Level.SEVERE, "Error: no related mail found!" + this.MailId); return fetchtest; } // Multipart mp = (Multipart) msg.getContent(); // BodyPart bp = mp.getBodyPart(0); sentdate = msg.getSentDate().toString(); subject = msg.getSubject(); Content = msg.getContent().toString(); log.log(Level.INFO, Content); log.log(Level.INFO, sentdate); localIntent.putExtra("213123", "Got Server latest update at : " + sentdate + " , Reading the Data..."); LocalBroadcastManager.getInstance(myis).sendBroadcast(localIntent); Multipart multipart = (Multipart) msg.getContent(); for (int i = 0; i < multipart.getCount(); i++) { BodyPart bodyPart = multipart.getBodyPart(i); if (!Part.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition()) && (bodyPart.getFileName() == null || !bodyPart.getFileName().equals("dataforvgendwithudp.gzip"))) { continue; // dealing with attachments only } ByteArrayOutputStream buffer = new ByteArrayOutputStream(); InputStream is = bodyPart.getInputStream(); //validvgbinary = IOUtils.toByteArray(is); int nRead; byte[] data = new byte[5000000]; while ((nRead = is.read(data, 0, data.length)) != -1) { buffer.write(data, 0, nRead); } buffer.flush(); validvgbinary = buffer.toByteArray(); break; } fetchtest = true; } catch (Exception mex) { mex.printStackTrace(); } return fetchtest; }
From source file:com.app.test.mail.DefaultMailSenderTest.java
@Test public void testPopulateAccountDeletionMessage() throws Exception { _initializeVelocityTemplate(_clazz, _classInstance); Method populateMessage = _clazz.getDeclaredMethod("_populateMessage", String.class, String.class, String.class, Session.class); populateMessage.setAccessible(true); Message message = (Message) populateMessage.invoke(_classInstance, "user@test.com", "Account Deletion Successful", "account_deletion_email.vm", _session); Assert.assertEquals("Auction Alert <test@test.com>", message.getFrom()[0].toString()); Assert.assertEquals("Account Deletion Successful", message.getSubject()); Assert.assertEquals(_ACCOUNT_DELETION_EMAIL, message.getContent()); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress("user@test.com"); Assert.assertArrayEquals(internetAddresses, message.getRecipients(Message.RecipientType.TO)); }
From source file:org.apache.axis2.transport.mail.MailRequestResponseClient.java
public IncomingMessage<byte[]> sendMessage(ClientOptions options, ContentType contentType, byte[] message) throws Exception { String msgId = sendMessage(contentType, message); Message reply = waitForReply(msgId); Assert.assertNotNull("No response received", reply); Assert.assertEquals(channel.getSender().getAddress(), ((InternetAddress) reply.getRecipients(Message.RecipientType.TO)[0]).getAddress()); Assert.assertEquals(channel.getRecipient().getAddress(), ((InternetAddress) reply.getFrom()[0]).getAddress()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); reply.getDataHandler().writeTo(baos); return new IncomingMessage<byte[]>(new ContentType(reply.getContentType()), baos.toByteArray()); }
From source file:com.app.test.mail.DefaultMailSenderTest.java
@Test public void testPopulateEmailMessage() throws Exception { _initializeVelocityTemplate(_clazz, _classInstance); Method populateEmailMessageMethod = _clazz.getDeclaredMethod("_populateEmailMessage", Map.class, String.class, String.class, Session.class); populateEmailMessageMethod.setAccessible(true); List<SearchResult> searchResults = new ArrayList<>(); SearchQuery searchQuery = new SearchQuery(1, _USER_ID, "Test keywords"); SearchResult searchResult = new SearchResult(1, "1234", "itemTitle", "$14.99", "$29.99", "http://www.ebay.com/itm/1234", "http://www.ebay.com/123.jpg"); searchResults.add(searchResult);/*from w w w . j a v a 2 s . c om*/ Map<SearchQuery, List<SearchResult>> searchQueryResultMap = new HashMap<>(); searchQueryResultMap.put(searchQuery, searchResults); Message message = (Message) populateEmailMessageMethod.invoke(_classInstance, searchQueryResultMap, "user@test.com", "unsubscribeToken", _session); Assert.assertEquals("Auction Alert <test@test.com>", message.getFrom()[0].toString()); Assert.assertTrue(message.getSubject().contains("New Search Results - ")); Assert.assertEquals(_EMAIL_CONTENT, message.getContent()); InternetAddress[] internetAddresses = new InternetAddress[1]; internetAddresses[0] = new InternetAddress("user@test.com"); Assert.assertArrayEquals(internetAddresses, message.getRecipients(Message.RecipientType.TO)); }
From source file:com.openkm.util.MailUtils.java
/** * Import messages//from w w w . ja v a 2 s. com * http://www.jguru.com/faq/view.jsp?EID=26898 * * == Using Unique Identifier (UIDL) == * Mail server assigns an unique identifier for every email in the same account. You can get as UIDL * for every email by MailInfo.UIDL property. To avoid receiving the same email twice, the best way is * storing the UIDL of email retrieved to a text file or database. Next time before you retrieve email, * compare your local uidl list with remote uidl. If this uidl exists in your local uidl list, don't * receive it; otherwise receive it. * * == Different property of UIDL in POP3 and IMAP4 == * UIDL is always unique in IMAP4 and it is always an incremental integer. UIDL in POP3 can be any valid * asc-ii characters, and an UIDL may be reused by POP3 server if email with this UIDL has been deleted * from the server. Hence you are advised to remove the uidl from your local uidl list if that uidl is * no longer exist on the POP3 server. * * == Remarks == * You should create different local uidl list for different email account, because the uidl is only * unique for the same account. */ public static String importMessages(String token, MailAccount ma) throws PathNotFoundException, ItemExistsException, VirusDetectedException, AccessDeniedException, RepositoryException, DatabaseException, UserQuotaExceededException, ExtensionException, AutomationException { log.debug("importMessages({}, {})", new Object[] { token, ma }); Session session = Session.getDefaultInstance(getProperties()); String exceptionMessage = null; try { // Open connection Store store = session.getStore(ma.getMailProtocol()); store.connect(ma.getMailHost(), ma.getMailUser(), ma.getMailPassword()); Folder folder = store.getFolder(ma.getMailFolder()); folder.open(Folder.READ_WRITE); Message messages[] = null; if (folder instanceof IMAPFolder) { // IMAP folder UIDs begins at 1 and are supposed to be sequential. // Each folder has its own UIDs sequence, not is a global one. messages = ((IMAPFolder) folder).getMessagesByUID(ma.getMailLastUid() + 1, UIDFolder.LASTUID); } else { messages = folder.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false)); } for (int i = 0; i < messages.length; i++) { Message msg = messages[i]; log.info("======= ======= {} ======= =======", i); log.info("Subject: {}", msg.getSubject()); log.info("From: {}", msg.getFrom()); log.info("Received: {}", msg.getReceivedDate()); log.info("Sent: {}", msg.getSentDate()); com.openkm.bean.Mail mail = messageToMail(msg); if (ma.getMailFilters().isEmpty()) { log.debug("Import in compatibility mode"); String mailPath = getUserMailPath(ma.getUser()); importMail(token, mailPath, true, folder, msg, ma, mail); } else { for (MailFilter mf : ma.getMailFilters()) { log.debug("MailFilter: {}", mf); if (checkRules(mail, mf.getFilterRules())) { String mailPath = mf.getPath(); importMail(token, mailPath, mf.isGrouping(), folder, msg, ma, mail); } } } // Set message as seen if (ma.isMailMarkSeen()) { msg.setFlag(Flags.Flag.SEEN, true); } else { msg.setFlag(Flags.Flag.SEEN, false); } // Delete read mail if requested if (ma.isMailMarkDeleted()) { msg.setFlag(Flags.Flag.DELETED, true); } // Set lastUid if (folder instanceof IMAPFolder) { long msgUid = ((IMAPFolder) folder).getUID(msg); log.info("Message UID: {}", msgUid); ma.setMailLastUid(msgUid); MailAccountDAO.update(ma); } } // Close connection log.debug("Expunge: {}", ma.isMailMarkDeleted()); folder.close(ma.isMailMarkDeleted()); store.close(); } catch (NoSuchProviderException e) { log.error(e.getMessage(), e); exceptionMessage = e.getMessage(); } catch (MessagingException e) { log.error(e.getMessage(), e); exceptionMessage = e.getMessage(); } catch (IOException e) { log.error(e.getMessage(), e); exceptionMessage = e.getMessage(); } log.debug("importMessages: {}", exceptionMessage); return exceptionMessage; }
From source file:com.aquest.emailmarketing.web.service.BouncedEmailService.java
/** * Process bounces./*w w w. j a v a2 s . com*/ * * @param protocol the protocol * @param host the host * @param port the port * @param userName the user name * @param password the password */ public void processBounces(String protocol, String host, String port, String userName, String password) { Properties properties = getServerProperties(protocol, host, port); Session session = Session.getDefaultInstance(properties); List<BounceCode> bounceCodes = bounceCodeService.getAllBounceCodes(); try { // connects to the message store Store store = session.getStore(protocol); System.out.println(userName); System.out.println(password); System.out.println(userName.length()); System.out.println(password.length()); //store.connect(userName, password); //TODO: ispraviti username i password da idu iz poziva a ne hardcoded store.connect("bojan.dimic@aquest-solutions.com", "bg181076"); // opens the inbox folder Folder folderInbox = store.getFolder("INBOX"); folderInbox.open(Folder.READ_ONLY); // fetches new messages from server Message[] messages = folderInbox.getMessages(); for (int i = 0; i < messages.length; i++) { BouncedEmail bouncedEmail = new BouncedEmail(); Message msg = messages[i]; Address[] fromAddress = msg.getFrom(); String from = fromAddress[0].toString(); String failedAddress = ""; Enumeration<?> headers = messages[i].getAllHeaders(); while (headers.hasMoreElements()) { Header h = (Header) headers.nextElement(); //System.out.println(h.getName() + ":" + h.getValue()); //System.out.println(""); String mID = h.getName(); if (mID.contains("X-Failed-Recipients")) { failedAddress = h.getValue(); } } String subject = msg.getSubject(); String toList = parseAddresses(msg.getRecipients(RecipientType.TO)); String ccList = parseAddresses(msg.getRecipients(RecipientType.CC)); String sentDate = msg.getSentDate().toString(); String contentType = msg.getContentType(); String messageContent = ""; if (contentType.contains("text/plain") || contentType.contains("text/html")) { try { Object content = msg.getContent(); if (content != null) { messageContent = content.toString(); } } catch (Exception ex) { messageContent = "[Error downloading content]"; ex.printStackTrace(); } } String bounceReason = "Unknown reason"; for (BounceCode bounceCode : bounceCodes) { if (messageContent.contains(bounceCode.getCode())) { bounceReason = bounceCode.getExplanation(); } } // if(messageContent.contains(" 550 ") || messageContent.contains(" 550-")) {bounceReason="Users mailbox was unavailable (such as not found)";} // if(messageContent.contains(" 554 ") || messageContent.contains(" 554-")) {bounceReason="The transaction failed for some unstated reason.";} // // // enhanced bounce codes // if(messageContent.contains("5.0.0")) {bounceReason="Unknown issue";} // if(messageContent.contains("5.1.0")) {bounceReason="Other address status";} // if(messageContent.contains("5.1.1")) {bounceReason="Bad destination mailbox address";} // if(messageContent.contains("5.1.2")) {bounceReason="Bad destination system address";} // if(messageContent.contains("5.1.3")) {bounceReason="Bad destination mailbox address syntax";} // if(messageContent.contains("5.1.4")) {bounceReason="Destination mailbox address ambiguous";} // if(messageContent.contains("5.1.5")) {bounceReason="Destination mailbox address valid";} // if(messageContent.contains("5.1.6")) {bounceReason="Mailbox has moved";} // if(messageContent.contains("5.7.1")) {bounceReason="Delivery not authorized, message refused";} // print out details of each message System.out.println("Message #" + (i + 1) + ":"); System.out.println("\t From: " + from); System.out.println("\t To: " + toList); System.out.println("\t CC: " + ccList); System.out.println("\t Subject: " + subject); System.out.println("\t Sent Date: " + sentDate); System.out.println("\t X-Failed-Recipients:" + failedAddress); System.out.println("\t Content Type:" + contentType); System.out.println("\t Bounce reason:" + bounceReason); //System.out.println("\t Message: " + messageContent); bouncedEmail.setEmail_address(failedAddress); bouncedEmail.setBounce_reason(bounceReason); //Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); SimpleDateFormat sqlFormat = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH); //String strDate = date.toString(); System.out.println(sentDate); Date dt = null; //Date nd = null; try { dt = formatter.parse(sentDate); //nd = sqlFormat.parse(dt.toString()); } catch (ParseException e) { e.printStackTrace(); } System.out.println("Date " + dt.toString()); //System.out.println("Date " + nd.toString()); System.out.println(new Timestamp(new Date().getTime())); bouncedEmail.setSend_date(dt); bouncedEmailDao.saveOrUpdate(bouncedEmail); } // disconnect folderInbox.close(false); store.close(); } catch (NoSuchProviderException ex) { System.out.println("No provider for protocol: " + protocol); ex.printStackTrace(); } catch (MessagingException ex) { System.out.println("Could not connect to the message store"); ex.printStackTrace(); } }