diff --git a/commons/mail/pom.xml b/commons/mail/pom.xml
new file mode 100644
index 0000000..86992f0
--- /dev/null
+++ b/commons/mail/pom.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+    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
+    "License"); 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
+    "AS IS" 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. 
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.felix.commons</groupId>
+        <artifactId>build</artifactId>
+        <version>0.9.0-incubator-SNAPSHOT</version>
+    </parent>
+    <properties>
+        <pkgArtifactId>mail</pkgArtifactId>
+        <pkgVersion>1.4</pkgVersion>
+        <pomVersion>0001</pomVersion>
+        <osgiVersion>${pkgVersion}.0</osgiVersion>
+    </properties>
+    <groupId>org.apache.felix.commons</groupId>
+    <artifactId>${pom.groupId}.${pkgArtifactId}</artifactId>
+    <version>${osgiVersion}-${pomVersion}-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+    <name>${pkgArtifactId} bundle</name>
+    <description>
+        This bundle simply wraps ${pkgArtifactId}-${pkgVersion}.jar.
+    </description>
+    <organization>
+        <name>Apache Felix Project</name>
+        <url>http://incubator.apache.org/felix/</url>
+    </organization>
+    <dependencies>
+        <dependency>
+            <groupId>javax.mail</groupId>
+            <artifactId>${pkgArtifactId}</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>
+                            ${pom.artifactId}
+                        </Bundle-SymbolicName>
+                        <Export-Package>
+                            javax.mail;version=${pkgVersion},
+                            javax.mail.event;version=${pkgVersion},
+                            javax.mail.internet;version=${pkgVersion},
+                            javax.mail.search;version=${pkgVersion},
+                            javax.mail.util;version=${pkgVersion},
+                            com.sun.mail.imap;version=${pkgVersion},
+                            com.sun.mail.pop3;version=${pkgVersion},
+                            com.sun.mail.smtp;version=${pkgVersion}
+                        </Export-Package>
+                        <Private-Package>
+                            com.sun.mail.handlers, com.sun.mail.iap,
+                            com.sun.mail.imap.protocol, com.sun.mail.util
+                        </Private-Package>
+                        <Include-Resource>
+                            @${pkgArtifactId}-${pkgVersion}.jar!/META-INF/LICENSE.txt,
+                            @${pkgArtifactId}-${pkgVersion}.jar!/META-INF/javamail.charset.map,
+                            @${pkgArtifactId}-${pkgVersion}.jar!/META-INF/javamail.default.address.map,
+                            @${pkgArtifactId}-${pkgVersion}.jar!/META-INF/javamail.default.providers,
+                            @${pkgArtifactId}-${pkgVersion}.jar!/META-INF/mailcap
+                        </Include-Resource>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
