Author: kwright
Date: Wed Apr 12 21:11:24 2017
New Revision: 1791187

URL: http://svn.apache.org/viewvc?rev=1791187&view=rev
Log:
Fix for CONNECTORS-1402.

Modified:
    manifoldcf/trunk/CHANGES.txt
    
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1791187&r1=1791186&r2=1791187&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Wed Apr 12 21:11:24 2017
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 2.7-dev =====================
 
+CONNECTORS-1402: Add metadata information for email attachments.
+(Furkan KAMACI)
+
 CONNECTORS-1401: Fix Documentum Authority query to exclude
 access tokens that have matching negative groups or users.
 (Sharnel Merdeck Pereira, Karl Wright)

Modified: 
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java?rev=1791187&r1=1791186&r2=1791187&view=diff
==============================================================================
--- 
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
 (original)
+++ 
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
 Wed Apr 12 21:11:24 2017
@@ -263,8 +263,8 @@ public class EmailConnector extends org.
   * The connector will be connected before this method can be called.
   *@param activities is the interface this method should use to perform 
whatever framework actions are desired.
   *@param spec is a document specification (that comes from the job).
+  *@param lastSeedVersion is the last seeding version string for this job, or 
null if the job has no previous seeding version string.
   *@param seedTime is the end of the time range of documents to consider, 
exclusive.
-  *@param lastSeedVersionString is the last seeding version string for this 
job, or null if the job has no previous seeding version string.
   *@param jobMode is an integer describing how the job is being run, whether 
continuous or once-only.
   *@return an updated seeding version string, to be stored with the job.
   */
@@ -584,7 +584,6 @@ public class EmailConnector extends org.
               rd.setCreatedDate(sentDate);
               rd.setModifiedDate(sentDate);
               
-              String subject = StringUtils.EMPTY;
               for (String metadata : requiredMetadata) {
                 if 
(metadata.toLowerCase(Locale.ROOT).equals(EmailConfig.EMAIL_TO)) {
                   Address[] to = msg.getRecipients(Message.RecipientType.TO);
@@ -604,7 +603,7 @@ public class EmailConnector extends org.
                   rd.addField(EmailConfig.EMAIL_FROM, fromStr);
 
                 } else if 
(metadata.toLowerCase(Locale.ROOT).equals(EmailConfig.EMAIL_SUBJECT)) {
-                  subject = msg.getSubject();
+                  String subject = msg.getSubject();
                   rd.addField(EmailConfig.EMAIL_SUBJECT, subject);
                 } else if 
(metadata.toLowerCase(Locale.ROOT).equals(EmailConfig.EMAIL_BODY)) {
                   Object o = msg.getContent();
@@ -823,6 +822,29 @@ public class EmailConnector extends org.
               rd.setCreatedDate(sentDate);
               rd.setModifiedDate(sentDate);
 
+              for (String metadata : requiredMetadata) {
+                if 
(metadata.toLowerCase(Locale.ROOT).equals(EmailConfig.EMAIL_TO)) {
+                  Address[] to = msg.getRecipients(Message.RecipientType.TO);
+                  String[] toStr = new String[to.length];
+                  int j = 0;
+                  for (Address address : to) {
+                    toStr[j] = address.toString();
+                  }
+                  rd.addField(EmailConfig.EMAIL_TO, toStr);
+                } else if 
(metadata.toLowerCase(Locale.ROOT).equals(EmailConfig.EMAIL_FROM)) {
+                  Address[] from = msg.getFrom();
+                  String[] fromStr = new String[from.length];
+                  int j = 0;
+                  for (Address address : from) {
+                    fromStr[j] = address.toString();
+                  }
+                  rd.addField(EmailConfig.EMAIL_FROM, fromStr);
+
+                } else if 
(metadata.toLowerCase(Locale.ROOT).equals(EmailConfig.EMAIL_DATE)) {
+                  rd.addField(EmailConfig.EMAIL_DATE, sentDate.toString());
+                }
+              }
+
               final InputStream is = part.getInputStream();
               try {
                 rd.setBinary(is, fileLength);


Reply via email to