After you have read the licensing description below, be sure to check out the License Frequently Asked Questions over at the License FAQ page. It contains some of the more common questions about licensing scenarios. If you have any other questions about licensing, feel free to submit a question at the online comments form. Be sure to include your email address so we can get back to you.
Our products are licensed using one of the following scenarios. You can purchase the license that best fits your need.
Server License (not royalty free)
A server license is required for each SERVER, WORKSTATION, PC, or DEVELOPMENT computer where aspNetEmail is installed.
Note: Our products are not licensed per Domain, URL, IP address or per processor.
Site License (not royalty free)
The site license allows you to install the product on an unlimited number of servers at a single, physical location. A physical location is typcially defined as a single postal address. This is *not* a royalty free license
Enterprise License (not royalty free)
The enterprise license allows you to install the product on an unlimited number of servers and locations for your enterprise. The main difference between the site license and the entprise license, is the enterprise license is not limited to a single site. This allows the software to be installed at remote locations in your organization.
Per developer, royalty free licenses
As an additional option, our products can be purchased on a per developer basis. This licensing structure allows you to distibute the software with your products on a royalty-free, runtime basis. A license will be required for each developer working with the product or compiling it. Be sure to read the specific terms of the per-developer section of the license to see if you qualify for this scenario. If you are reselling your software, this is the only licensing option for your scenario.
Contact us at for more information, or if you have any other specific questions.
If you are looking for a copy of the legal licensing document they can be found here:
Plain Text Format
Eval vs Purchased License
Basically, there are two versions of the license file, the evaluation version, and the purchased version.
The evaluation license can be freely downloaded from http://www.advancedintellect.com/download.aspx . If you are using a product, and your evaluation license expires, simply visit the website to download a later copy. Please note, once you move into production, we require you to purchase. An eval license is meant for evaluating the software.
When you purchase the product, you will be purchasing a non-evaluation license. This will allow you to always download the latest versions from http://www.advancedintellect.com/download.aspx, without having to worry about special updates. Your license file will work for the major version you have purchased. If you ever wish to upgrade, from major version to major version, there will be a small charge. All minor version upgrades are free.
aspNetMX, aspNetIMAP, aspNetPOP3, aspNetMime, aspNetDns, and ListNanny
aspNetMX and aspNetDns were migrated to using license keys (rather than a license file as found below). This makes it easier on developers, especially when moving their applications. In the future the remainder of our products will be migrated to this licensing technique. The license key looks like:
There are 2 ways of loading the license key (using aspNetMX as an example).
1.You can explicitly call the key in code like:
2. You can set the key in your .config file. For example:
<add key="aspNetMX.LicenseKey" value="aaaa-2222-cccc-3333-dddd"></add>
Alternatively, if you are running multiple versions of aspNetMX, and you need aspNetMX to bind to a specific version, you can specify license keys down to the revision number. For example, let's say you are using aspNetMX v220.127.116.11. Any one of these <appSettings> keys will work:
<add key="aspNetMX.3.LicenseKey" value="aaaa-2222-cccc-3333-dddd"></add>
<add key="aspNetMX.3.8.LicenseKey" value="aaaa-2222-cccc-3333-dddd"></add>
<add key="aspNetMX.3.8.6.LicenseKey" value="aaaa-2222-cccc-3333-dddd"></add>
<add key="aspNetMX.18.104.22.168.LicenseKey" value="aaaa-2222-cccc-3333-dddd"></add>
So, lets say you are running both versions 3.0 and 4.0 and you need to install both keys, you could set the following:
<add key="aspNetMX.3.LicenseKey" value="aaaa-2222-cccc-3333-dddd"></add>
<add key="aspNetMX.4.LicenseKey" value="xxxx-77777-yyyyy-88888-zzzzz"></add>
Administrators and ISPs
To protect your license file, from malicious users copying it, you can specify the license key in the machine.config appSettings section. Thus, you can keep the key relatively private, without having to hand it out to the users. They will be able to just add the software to their /bin directory, and it will work.
aspNetEmail has it's license keys in the form of a digitally signed Xml file named "aspNetEmail.xml.lic". The Xml file is tied only to an order or company name. It is NOT tied to a specific machine, IP address, or location. This allows for XCOPY deployment, something we have strived to maintain.
While other companies tie software to machine names or hard drives. We don't. We understand that you want to move your application from development server to production without any problems. Our solution does this, effortlessly and easily. Unlike other competitor's email components, our licensing does not "call home", so you do not have to worry about using our components behind firewalls, or being connected to the internet.
How the licensing works
aspNetEmail can attempt to automatically locate and load the license file, or you can manually specify the file's location. Below you will find 4 different ways of loading the license file.
Loading the License
1.Automatically Detecting the License File
Simply drop the aspNetEmail.xml.lic file in the same directory as the aspNetEmail.dll, or in the same directory as the exe that is calling the aspNetEmail component. aspNetEmail will automatically locate and load the license.
2.Manually specifying it in your .config file
Specify the license location in your .config file. aspNetEmail will check the config file for specially named keys. It can bind from a major version number, all the way to down to a build number. For example, let's say we have a version of aspNetEmail : v22.214.171.124.
The following entry will bind to the specific version 126.96.36.199 of aspNetEmail.
<add key="aspNetEmail.188.8.131.52.License" value="c:\aspNetEmail.xml.lic">
The following entry will bind to all versions 3.8.2.* of aspNetEmail.
<add key="aspNetEmail.3.8.2.License" value="c:\aspNetEmail.xml.lic">
The following entry will bind to all versions 3.8.*.* of aspNetEmail.
<add key="aspNetEmail.3.8.License" value="c:\aspNetEmail.xml.lic">
The following entry will bind to all versions 3.*.*.* of aspNetEmail (basically any 3.x version of aspNetEmail).
<add key="aspNetEmail.3.License" value="c:\aspNetEmail.xml.lic">
If you are not running multiple versions of aspNetEmail, or you don't care how many versions you are running, and you want all versions to bind to a specific license flie, simply use the following key.
<add key="aspNetEmail.License" value="c:\keys\aspNetEmail.xml.lic">
And in this example, the license file would be loaded from the \keys\ directory. By manually specifying version numbers, this naming scheme will allow you to have multiple licenses, and multiple versions of aspNetEmail running in the same application, without conflict.
Administrators and ISPs
To protect your license file, from malicious users copying it, you can specify the license file in the machine.config appSettings section. Thus, you can keep the file private, and do not need to copy it to your customers /bin directory. You can freely drop the aspNetEmail.dll in their /bin directory, because, without your purchased license file, they will not be able to use the product, outside of your servers.
3. Manually Loading the File in Code
You can also manually load the license file in your code. For example, the following
code snippet will load the file from c:\privatekeys\aspNetEmail.xml.lic
EmailMessage.LoadLicenseFile( c:\\privatekeys\\aspNetEmail.xml.lic" );
EmailMessage.LoadLicenseFile( "c:\privatekeys\aspNetEmail.xml.lic" )
Likewise, if you are running aspNetEmail from an ASP.NET application, you can load the file like:
EmailMessage.LoadLicenseFile( Server.MapPath( "aspNetEmail.xml.lic" ) );
EmailMessage.LoadLicenseFile(Server.MapPath( "aspNetEmail.xml.lic" ) )
4. Manually Loading the License Contents
The last option, is to manually load the license, as a string. By providing this option, developers could store the license in a central database. This is useful when a company has purchased a site license, and wants to keep their entire organization up to date.
string xmlLicenseContents = GetLicenseString(); EmailMessage.LoadLicenseString( xmlLicenseContents );
Dim xmlLicenseContents As String = GetLicenseString() EmailMessage.LoadLicenseString(xmlLicenseContents)
Other Software Vendors
This option is also useful for 3rd party developers who want to bundle aspNetEmail with their own application. By embedding the license file as a resource (or some other mechanism), 3rd party developers can protect themselves, by preventing people from casually stealing their purchased software. The following code snippet demonstrates loading the license from a previously populated string.
Where GetLicenseString() is a method written by you, that retrieves the license contents.
If you would like to see how this method works, you can download a sample project here. This project demonstrates how to load a license as an embedded resource. It has you creating your own "AcmeProduct" in a class named "MySuperClass". As an added exercise, you may want to encrypt the license contents so anyone with a resource viewer won't extract your license as plain text.
Note:You will need to download the aspNetEmail.dll along with a valid license file to get this to run.