You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by hu...@apache.org on 2016/07/10 11:09:17 UTC

[1/7] incubator-ponymail git commit: Use the right document type for asssessment

Repository: incubator-ponymail
Updated Branches:
  refs/heads/master 3efed647f -> 272c74833


Use the right document type for asssessment

mbox_source does not equate mbox docs in terms of
tags allocated, so let's use mbox first and then switch
to source once tags have been processed.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/03fc55df
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/03fc55df
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/03fc55df

Branch: refs/heads/master
Commit: 03fc55df427f3d6e33a004dd013671de2a792002
Parents: 3efed64
Author: humbedooh <hu...@apache.org>
Authored: Mon Jun 13 11:14:39 2016 +0200
Committer: humbedooh <hu...@apache.org>
Committed: Mon Jun 13 11:14:39 2016 +0200

----------------------------------------------------------------------
 site/api/source.lua | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/03fc55df/site/api/source.lua
----------------------------------------------------------------------
diff --git a/site/api/source.lua b/site/api/source.lua
index c7b2b60..45305e4 100644
--- a/site/api/source.lua
+++ b/site/api/source.lua
@@ -26,16 +26,16 @@ function handle(r)
     r.content_type = "text/plain"
     local get = r:parseargs()
     local eid = (get.id or r.path_info):gsub("\"", ""):gsub("/", "")
-    local doc = elastic.get("mbox_source", eid or "hmm")
+    local doc = elastic.get("mbox", eid or "hmm")
     
     -- Try searching by mid if not found, for backward compat
     if not doc or not doc.subject then
-        local docs = elastic.find("message-id:\"" .. r:escape(eid) .. "\"", 1, "mbox_source")
+        local docs = elastic.find("message-id:\"" .. r:escape(eid) .. "\"", 1, "mbox")
         if #docs == 1 then
             doc = docs[1]
         end
     end
-    if doc and doc.source then
+    if doc then
         local canAccess = false
         if doc.private then
             local account = user.get(r)
@@ -56,7 +56,12 @@ function handle(r)
         end
         if canAccess then
             doc.tid = doc.request_id
-            r:puts(doc.source)
+            local doc_raw = elastic.get('mbox_source', doc.request_id)
+            if doc_raw then
+                r:puts(doc_raw.source)
+            else
+                r:puts("No such email")
+            end
         else
             r:puts("You do not have access to view this email, sorry.")
         end


[6/7] incubator-ponymail git commit: trim NOTICE, use httpd's format for referring to donation

Posted by hu...@apache.org.
trim NOTICE, use httpd's format for referring to donation


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/5a3aa23f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/5a3aa23f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/5a3aa23f

Branch: refs/heads/master
Commit: 5a3aa23f8283a1c3396cf6a3db81fa127b94e785
Parents: 1f94877
Author: humbedooh <hu...@apache.org>
Authored: Tue Jul 5 17:32:58 2016 +0200
Committer: humbedooh <hu...@apache.org>
Committed: Tue Jul 5 17:32:58 2016 +0200

----------------------------------------------------------------------
 NOTICE | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/5a3aa23f/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
index 18b17e6..0c7b940 100644
--- a/NOTICE
+++ b/NOTICE
@@ -4,17 +4,5 @@ Copyright 2015-2016 The Apache Software Foundation.
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
-This product includes software developed at
+Portions of this software were developed by Quenda IvS,
 Quenda (http://www.quenda.co/)
-
-This product includes code (stylesheets/javascript) developed 
-by Twitter, inc. (BootStrap), Licensed under MIT license
-
-This product includes code (JS regex def) developed 
-by Diego Perini, licensed under the MIT license
-
-This product includes code developed by the jQuery
-Foundation, licensed under the MIT license.
-
-This produce includes code (quokka.js) developed
-by Daniel Gruno, licensed under the Apache License v/2.0


[7/7] incubator-ponymail git commit: update changelog

Posted by hu...@apache.org.
update changelog

add the new editor features


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/272c7483
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/272c7483
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/272c7483

Branch: refs/heads/master
Commit: 272c74833590e890ff98665a4896e2c2f76633f9
Parents: 5a3aa23
Author: Daniel Gruno <hu...@apache.org>
Authored: Sun Jul 10 13:08:35 2016 +0200
Committer: Daniel Gruno <hu...@apache.org>
Committed: Sun Jul 10 13:08:35 2016 +0200

----------------------------------------------------------------------
 CHANGELOG.md | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/272c7483/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5dfd0ed..28848bf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,10 @@
 - Added support for Maildir imports
 - Added three distinct Message-ID generators (short, medium, full)
 - Fixed some issues with email association
+- Added obfuscation mechanism to the list editor
+- Added a dry-run feature to the list editor (no changes made)
+- Added a single-message edit feature for the liste editor
+
 
 ## CHANGES in 0.8b:
 


[4/7] incubator-ponymail git commit: add a few new features to list editor

Posted by hu...@apache.org.
add a few new features to list editor

- Allow a single message to be edited, by ID
- Allow obfuscation of specific parts of a message
- Allow for test runs where no changes are applied


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/75feb484
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/75feb484
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/75feb484

Branch: refs/heads/master
Commit: 75feb484af84d689d71542c380b5c5b7e919b6e4
Parents: 0e86b6d
Author: humbedooh <hu...@apache.org>
Authored: Mon Jul 4 15:35:46 2016 +0200
Committer: humbedooh <hu...@apache.org>
Committed: Mon Jul 4 15:35:46 2016 +0200

----------------------------------------------------------------------
 tools/edit-list.py | 79 +++++++++++++++++++++++++++++++++++--------------
 1 file changed, 56 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/75feb484/tools/edit-list.py
----------------------------------------------------------------------
diff --git a/tools/edit-list.py b/tools/edit-list.py
index c5a562a..b416834 100644
--- a/tools/edit-list.py
+++ b/tools/edit-list.py
@@ -46,6 +46,9 @@ wildcard = None
 debug = False
 notag = False
 desc = None
+mid = None
+dryrun = False
+obfuscate = None
 
 ssl = False
 dbname = config.get("elasticsearch", "dbname")
@@ -70,10 +73,14 @@ rootURL = ""
 parser = argparse.ArgumentParser(description='Command line options.')
 parser.add_argument('--source', dest='source', type=str, nargs=1,
                    help='Source list to edit')
+parser.add_argument('--mid', dest='mid', type=str, nargs=1,
+                   help='Source Message-ID to edit')
 parser.add_argument('--rename', dest='target', type=str, nargs=1,
                    help='(optional) new list ID')
 parser.add_argument('--desc', dest='desc', type=str, nargs=1,
                    help='(optional) new list description')
+parser.add_argument('--obfuscate', dest='obfuscate', type=str, nargs=1,
+                   help='Things to obfuscate in body, if any')
 parser.add_argument('--private', dest='private', action='store_true',
                    help='Make all emails in list private')
 parser.add_argument('--public', dest='public', action='store_true',
@@ -86,6 +93,8 @@ parser.add_argument('--debug', dest='debug', action='store_true',
                    help='Debug output - very noisy!')
 parser.add_argument('--notag', dest='notag', action='store_true',
                    help='List IDs do not have <> in them')
+parser.add_argument('--test', dest='test', action='store_true',
+                   help='Only test for occurrences, do not run the chosen action (dry run)')
 
 args = parser.parse_args()
 
@@ -107,13 +116,19 @@ if args.debug:
     debug = args.debug
 if args.notag:
     notag = args.notag
-
-
-if not sourceLID:
+if args.mid:
+    mid = args.mid[0]
+if args.obfuscate:
+    obfuscate = args.obfuscate[0]
+if args.test:
+    dryrun = args.test
+    
+    
+if not sourceLID and not mid:
     print("No source list ID specified!")
     parser.print_help()
     sys.exit(-1)
-if not (targetLID or makePrivate or makePublic or deleteEmails or desc):
+if not (targetLID or makePrivate or makePublic or deleteEmails or desc or obfuscate):
     print("Nothing to do! No target list ID or action specified")
     parser.print_help()
     sys.exit(-1)
@@ -122,12 +137,13 @@ if makePublic and makePrivate:
     parser.print_help()
     sys.exit(-1)
 
-sourceLID = ("%s" if notag else "<%s>")  % sourceLID.replace("@", ".").strip("<>")
+if sourceLID:
+    sourceLID = ("%s" if notag else "<%s>")  % sourceLID.replace("@", ".").strip("<>")
 if targetLID:
     targetLID = "<%s>" % targetLID.replace("@", ".").strip("<>")
 
 print("Beginning list edit:")
-print("  - List ID: %s" % sourceLID)
+print("  - List ID: %s" % (sourceLID if sourceLID else mid))
 if targetLID:
     print("  - Target ID: %s" % targetLID)
 if makePublic:
@@ -136,7 +152,8 @@ if makePrivate:
     print("  - Action: Mark all emails private")
 if deleteEmails:
     print("  - Action: Delete emails (sources will be kept!)")
-
+if obfuscate:
+    print("  - Action: Obfuscate parts of email containing: %s" % obfuscate)
 count = 0
 
 if desc:
@@ -154,9 +171,22 @@ if desc:
         }
     )
 
-if targetLID or makePrivate or makePublic or deleteEmails:
+if targetLID or makePrivate or makePublic or deleteEmails or mid:
+    if dryrun:
+        print("DRY RUN - NO CHANGES WILL BE MADE")
     print("Updating docs...")
     then = time.time()
+    terms = {
+        'wildcard' if wildcard else 'term': {
+            'list_raw': sourceLID
+        }
+    }
+    if mid:
+        terms = {
+            'term': {
+                'mid': mid
+            }
+        }
     page = es.search(
         index=dbname,
         doc_type="mbox",
@@ -167,11 +197,7 @@ if targetLID or makePrivate or makePublic or deleteEmails:
             'query': {
                 'bool': {
                     'must': [
-                        {
-                            'wildcard' if wildcard else 'term': {
-                                'list_raw': sourceLID
-                            }
-                        }
+                        terms
                     ]
                 }
             }
@@ -191,6 +217,10 @@ if targetLID or makePrivate or makePublic or deleteEmails:
         for hit in page['hits']['hits']:
             doc = hit['_id']
             body = {}
+            if obfuscate:
+                body['body'] = hit['_source']['body'].replace(obfuscate, "...")
+                body['subject'] = hit['_source']['subject'].replace(obfuscate, "...")
+                body['from'] = hit['_source']['from'].replace(obfuscate, "...")
             if targetLID:
                 body['list_raw'] = targetLID
                 body['list'] = targetLID
@@ -198,21 +228,24 @@ if targetLID or makePrivate or makePublic or deleteEmails:
                 body['private'] = True
             if makePublic:
                 body['private'] = False
-            js_arr.append({
-                '_op_type': 'delete' if deleteEmails else 'update',
-                '_index': dbname,
-                '_type': 'mbox',
-                '_id': doc,
-                'doc': body
-            })
+            if not dryrun:
+                js_arr.append({
+                    '_op_type': 'delete' if deleteEmails else 'update',
+                    '_index': dbname,
+                    '_type': 'mbox',
+                    '_id': doc,
+                    'doc': body
+                })
 
             count += 1
             if (count % 500 == 0):
                 print("Processed %u emails..." % count)
-                helpers.bulk(es, js_arr)
-                js_arr = []
+                if not dryrun:
+                    helpers.bulk(es, js_arr)
+                    js_arr = []
 
     if len(js_arr) > 0:
-        helpers.bulk(es, js_arr)
+        if not dryrun:
+            helpers.bulk(es, js_arr)
 
     print("All done, processed %u docs in %u seconds" % (count, time.time() - then))


[2/7] incubator-ponymail git commit: switch to using gmtime instead of localtime

Posted by hu...@apache.org.
switch to using gmtime instead of localtime

for consistent date strings, should the archiver's time zone
settings change.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/f6f453ef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/f6f453ef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/f6f453ef

Branch: refs/heads/master
Commit: f6f453efa6a2565d53519254068beb180b786511
Parents: 03fc55d
Author: humbedooh <hu...@apache.org>
Authored: Mon Jun 13 11:15:14 2016 +0200
Committer: humbedooh <hu...@apache.org>
Committed: Mon Jun 13 11:15:14 2016 +0200

----------------------------------------------------------------------
 tools/archiver.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f6f453ef/tools/archiver.py
----------------------------------------------------------------------
diff --git a/tools/archiver.py b/tools/archiver.py
index e6e0d0a..36b9227 100644
--- a/tools/archiver.py
+++ b/tools/archiver.py
@@ -271,7 +271,7 @@ class Archiver(object):
         elif not mdate:
             print("Date seems totally wrong, setting to _now_ instead.")
             mdate = time.gmtime()
-        mdatestring = time.strftime("%Y/%m/%d %H:%M:%S", time.localtime(email.utils.mktime_tz(mdate)))
+        mdatestring = time.strftime("%Y/%m/%d %H:%M:%S", time.gmtime(email.utils.mktime_tz(mdate)))
         body = self.msgbody(msg)
         try:
             if 'content-type' in msg_metadata and msg_metadata['content-type'].find("flowed") != -1:


[3/7] incubator-ponymail git commit: add a filter for only parsing email from a specific sender

Posted by hu...@apache.org.
add a filter for only parsing email from a specific sender

Sometimes we'll need to import only email from a specific
(broken?) sender, so let's add a quick filter for this.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/0e86b6df
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/0e86b6df
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/0e86b6df

Branch: refs/heads/master
Commit: 0e86b6dfb7ee06cd707426e00c69e7b97d78c219
Parents: f6f453e
Author: humbedooh <hu...@apache.org>
Authored: Mon Jun 13 11:37:48 2016 +0200
Committer: humbedooh <hu...@apache.org>
Committed: Mon Jun 13 11:37:48 2016 +0200

----------------------------------------------------------------------
 tools/import-mbox.py | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/0e86b6df/tools/import-mbox.py
----------------------------------------------------------------------
diff --git a/tools/import-mbox.py b/tools/import-mbox.py
index 0b59d1f..5c62d20 100644
--- a/tools/import-mbox.py
+++ b/tools/import-mbox.py
@@ -73,6 +73,7 @@ parseHTML = False
 iBody = None
 resendTo = None
 timeout = 600
+fromFilter = None
 
 # Fetch config
 config = configparser.RawConfigParser()
@@ -239,6 +240,9 @@ class SlurpThread(Thread):
             LEY = EY
 
             for message in messages:
+                # If --filter is set, discard any messages not matching by continuing to next email
+                if fromFilter and 'from' in message and message['from'].find(fromFilter) == -1:
+                    continue
                 if resendTo:
                     print("Delivering message %s via MTA" % message['message-id'] if 'message-id' in message else '??')
                     s = SMTP('localhost')
@@ -356,6 +360,8 @@ parser.add_argument('--resend', dest='resend', type=str, nargs=1,
                    help='DANGER ZONE: Resend every read email to this recipient as a new email')
 parser.add_argument('--timeout', dest='timeout', type=int, nargs=1,
                    help='Optional timeout in secs for importing an mbox/maildir file (default is 600 seconds)')
+parser.add_argument('--filter', dest = 'fromfilter', type=str, nargs=1,
+                    help = 'Optional sender filter: Only import emails from this address')
 
 args = parser.parse_args()
 
@@ -388,6 +394,8 @@ if args.html2text:
     parseHTML = True
 if args.ibody:
     archiver.iBody = args.ibody[0]
+if args.fromfilter:
+    fromFilter = args.fromfilter[0]
 if args.resend:
     resendTo = args.resend[0]
     from smtplib import SMTP


[5/7] incubator-ponymail git commit: adding license headers to html files

Posted by hu...@apache.org.
adding license headers to html files


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/1f94877e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/1f94877e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/1f94877e

Branch: refs/heads/master
Commit: 1f94877eac486c0986f27b81cb8074f323dd0137
Parents: 75feb48
Author: humbedooh <hu...@apache.org>
Authored: Mon Jul 4 16:15:38 2016 +0200
Committer: humbedooh <hu...@apache.org>
Committed: Mon Jul 4 16:15:38 2016 +0200

----------------------------------------------------------------------
 site/index.html         | 12 ++++++++++++
 site/list.html          | 12 ++++++++++++
 site/merge.html         | 12 ++++++++++++
 site/ngrams.html        | 12 ++++++++++++
 site/notifications.html | 12 ++++++++++++
 site/oauth.html         | 12 ++++++++++++
 site/permalink.html     | 12 ++++++++++++
 site/search.html        | 12 ++++++++++++
 site/thread.html        | 12 ++++++++++++
 site/trends.html        | 13 +++++++++++++
 10 files changed, 121 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/index.html
----------------------------------------------------------------------
diff --git a/site/index.html b/site/index.html
index be10566..e4b31d2 100644
--- a/site/index.html
+++ b/site/index.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/list.html
----------------------------------------------------------------------
diff --git a/site/list.html b/site/list.html
index 51f8608..805a96a 100644
--- a/site/list.html
+++ b/site/list.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/merge.html
----------------------------------------------------------------------
diff --git a/site/merge.html b/site/merge.html
index b112f80..5f65bb4 100644
--- a/site/merge.html
+++ b/site/merge.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/ngrams.html
----------------------------------------------------------------------
diff --git a/site/ngrams.html b/site/ngrams.html
index 6207085..7064ff1 100644
--- a/site/ngrams.html
+++ b/site/ngrams.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/notifications.html
----------------------------------------------------------------------
diff --git a/site/notifications.html b/site/notifications.html
index 08ac94e..a1c7b4f 100644
--- a/site/notifications.html
+++ b/site/notifications.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/oauth.html
----------------------------------------------------------------------
diff --git a/site/oauth.html b/site/oauth.html
index 2358a2a..19a0fb9 100644
--- a/site/oauth.html
+++ b/site/oauth.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/permalink.html
----------------------------------------------------------------------
diff --git a/site/permalink.html b/site/permalink.html
index 0faa58a..c667e52 100644
--- a/site/permalink.html
+++ b/site/permalink.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/search.html
----------------------------------------------------------------------
diff --git a/site/search.html b/site/search.html
index 0f24e34..6101851 100644
--- a/site/search.html
+++ b/site/search.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/thread.html
----------------------------------------------------------------------
diff --git a/site/thread.html b/site/thread.html
index 2740601..38017f6 100644
--- a/site/thread.html
+++ b/site/thread.html
@@ -1,4 +1,16 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
 <html lang="en">
   <head>
     <meta charset="utf-8">

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/1f94877e/site/trends.html
----------------------------------------------------------------------
diff --git a/site/trends.html b/site/trends.html
index c5b7d5d..3437702 100644
--- a/site/trends.html
+++ b/site/trends.html
@@ -1,4 +1,17 @@
 <!DOCTYPE html>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership. The
+ASF licenses this file to you under the Apache License, Version 2.0 (the
+&quot;License&quot;); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at .
+http://www.apache.org/licenses/LICENSE-2.0 . Unless required by
+applicable law or agreed to in writing, software distributed under the
+License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES
+OR CONDITIONS OF ANY KIND, either express or implied. See the License
+for the specific language governing permissions and limitations under
+the License. -->
+
 <html lang="en">
   <head>
     <meta charset="utf-8">