Permalink
Browse files

Started v0.3 branch

  • Loading branch information...
1 parent f631416 commit b9fcc047bb0a721831e8215d7c096f97b16a4a28 Andris Reinman committed Feb 9, 2012
Showing with 8 additions and 1,954 deletions.
  1. +1 −1 LICENSE
  2. +1 −270 README.md
  3. +0 −122 lib/engines/SES.js
  4. +0 −827 lib/engines/SMTP.js
  5. +0 −92 lib/engines/SMTP/starttls.js
  6. +0 −30 lib/engines/sendmail.js
  7. +1 −609 lib/mail.js
  8. +5 −3 package.json
View
@@ -1,4 +1,4 @@
-Copyright (c) 2011 Andris Reinman
+Copyright (c) 2011-2012 Andris Reinman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
View
@@ -1,273 +1,4 @@
Nodemailer
==========
-**Nodemailer** is an easy to use module to send e-mails with Node.JS (using SMTP or sendmail) and it's Unicode friendly - You can use any characters you like ✔
-
-Nodemailer supports
--------------------
-
- - **Unicode** to use any characters
- - **HTML content** as well as **plain text** alternative
- - **Attachments**
- - **Embedded images** in HTML
- - **SSL/TLS** for secure e-mail delivery
- - **SMTP**, **sendmail** and **Amazon SES**
-
-If you want to parse generated or received e-mail instead of sending it, check out my other module [MailParser](/andris9/mailparser).
-
-Installation
-------------
-
-Install through *NPM*
-
- npm install nodemailer
-
-or download [ZIP archive](https://github.com/andris9/Nodemailer/zipball/master).
-
-The source for Nodemailer is available at [GitHub](https://github.com/andris9/Nodemailer).
-
-### Windows Users
-
-Nodemailer requires `mimelib-noiconv` to run which can be downloaded [here](https://github.com/andris9/mimelib/zipball/noiconv). Rename the directory to `mimelib-noiconv` and copy it to `node_modules` directory in nodemailer package (you need to create `node_modules` directory probably yourself to the root of nodemailer directory).
-
-
-### Compatibility
-
-Nodemailer is fully compatible with Node.js versions 0.3.x, 0.4.x and 0.5.x on *nix and 0.5.x on Windows
-
-Usage
------
-
-**nodemailer.send_mail(mail_params, callback)**
-
-Where
-
- * **mail_params** defines the e-mail (set its subject, body text, receivers etc.), see *E-mail Message Fields* for details
- * **callback** is the callback function that will be run after the e-mail is sent or the sending failed
-
-Simple use case to send a HTML e-mail with plaintext alternative
-
- var nodemailer = require('nodemailer');
-
- // one time action to set up SMTP information
- nodemailer.SMTP = {
- host: 'smtp.example.com'
- }
-
- // send an e-mail
- nodemailer.send_mail(
- // e-mail options
- {
- sender: 'me@example.com',
- to:'you@example.com',
- subject:'Hello!',
- html: '<p><b>Hi,</b> how are you doing?</p>',
- body:'Hi, how are you doing?'
- },
- // callback function
- function(error, success){
- console.log('Message', success ? 'sent' : 'failed');
- }
- );
-
-The callback function gets two parameters - *error* and *success*. If there's an
-error, then sending failed and you should check where's the problem. If there's
-no error value but *success* is not *true* then the server wasn't able to process
-the message correctly. Probably there was timeout while processing the message
-etc - in this case you should re-schedule sending this e-mail. If *success*
-is *true* then the message was sent successfully.
-
-See [examples/example_smtp.js](https://github.com/andris9/Nodemailer/blob/master/examples/example_smtp.js) for a complete example.
-
-Transfer method setup
-----------
-
-Before sending any e-mails you need to set up a transfer method for delivering the messages.
-
-To do this you need to define a properties object for a specific transfer method. Setup only one of these methods since only the first one defined will be used.
-
-### SMTP
-
-Use SMTP as the transfer method with the following setup
-
- nodemailer.SMTP = {
- host: 'smtp.example.com', // required
- port: 25, // optional, defaults to 25 or 465
- use_authentication: false, // optional, false by default
- user: '', // used only when use_authentication is true
- pass: '' // used only when use_authentication is true
- }
-
-### Amazon SES
-
-Use Amazon SES as the transfer method with the following setup
-
- nodemailer.SES = {
- AWSAccessKeyID: 'ACCESSKEY', // required
- AWSSecretKey: 'SECRETKEY', // required
- ServiceUrl: 'https://email.us-east-1.amazonaws.com', // optional
- }
-
-### sendmail
-
-Use `sendmail` as the transfer method with the following setup
-
- nodemailer.sendmail = true;
-
-or
-
- nodemailer.sendmail = '/path/to/sendmail';
-
-Aditional setup
-----------------
-
-### SSL Support with SMTP (port 465)
-
-If you want to use SSL (not TLS/STARTTLS, just SSL), you need to set the *ssl* parameter to true.
-
- nodemailer.SMTP = {
- host: 'smtp.gmail.com',
- port: 465,
- ssl: true,
- use_authentication: true,
- user: 'my.username@gmail.com',
- pass: 'my.password'
- }
-
-### TLS Support with SMTP (port 587)
-
-If you want to use TLS/STARTTLS (port 587), leave *ssl* to false or do not set it, encryption will be started automatically when needed.
-
- nodemailer.SMTP = {
- host: 'smtp.gmail.com',
- port: 587,
- ssl: false,
- use_authentication: true,
- user: 'my.username@gmail.com',
- pass: 'my.password'
- }
-
-E-mail Message Fields
---------------------
-
-The following are the possible fields of an e-mail message:
-
- - **sender** - The e-mail address of the sender. All e-mail addresses can be plain `sender@server.com` or formatted `Sender Name <sender@server.com>`
- - **to** - Comma separated list of recipients e-mail addresses that will appear on the `To:` field
- - **cc** - Comma separated list of recipients e-mail addresses that will appear on the `Cc:` field
- - **bcc** - Comma separated list of recipients e-mail addresses that will appear on the `Bcc:` field
- - **reply_to** - An e-mail address that will appear on the `Reply-To:` field
- - **subject** - The subject of the e-mail
- - **body** - The plaintext version of the message
- - **html** - The HTML version of the message
- - **attachments** - An array of attachment objects. Attachment object consists of two properties - `filename` and `contents`. Property `contents` can either be a String or a Buffer (for binary data). `filename` is the name of the attachment.
-
-There's an optional extra field **headers** which holds custom header values in the form of `{key: value}`. These values will not overwrite any existing header but will be appended to the list.
-
- mail_data = {
- sender:'me@example.com',
- to:'you@example.com',
- ....
- headers: {
- 'X-My-Custom-Header-Value': 'Visit www.example.com for more info!'
- }
- }
-
-For debugging set **debug** to true - then all the data passed between the client and the server will be output to console.
-
-Address Formatting
-------------------
-
-All the e-mail addresses can be plain e-mail address
-
- username@example.com
-
-or with formatted name (includes unicode support)
-
- 'Ноде Майлер' <username@example.com>
-
-To, Cc and Bcc fields accept comma separated list of e-mails. Formatting can be mixed.
-
- username@example.com, 'Ноде Майлер' <username@example.com>, "Name, User" <username@example.com>
-
-Creating HTML messages
-----------------------
-
-Message body in HTML format can be set with the message field `html`. If property `html` has contents but plain text alternative `body` has not (is left to empty), then existing text from the html version is also used in the plaintext version (without the html formatting).
-
-The charset for `html` is UTF-8.
-
- nodemailer.send_mail({
- ...
- html: '<p>hello world!<br/>хелло ворлд!</p>'
- });
-
-Using Attachments
------------------
-
-An e-mail message can include one or several attachments. Attachments can be set with the message field `attachments` which accepts a list of attachment objects.
-
-An attachment object primarly consists of two properties - `filename` which is the name of the file (not a filepath to an actual file on disk etc.) that will be reported to the receiver as the attachments name; and `contents` to hold the data in a String or Buffer format.
-There's an additional property `cid` which can be used for embedding images in a HTML message.
-
-Property `filename` is unicode safe.
-
- var attachment_list = [
- {
- 'filename': 'attachment1.txt',
- 'contents': 'contents for attachment1.txt'
- },
- {
- 'filename': 'аттачмент2.bin',
- 'contents': new Buffer('binary contents', 'binary');
- }
- ];
-
- nodemailer.send_mail({
- ...
- attachments: attachment_list
- });
-
-Using Embedded Images
----------------------
-
-Attachments can be used as embedded images in the HTML body. To use this feature, you need to set additional property
-of the attachment - `cid` (unique identifier of the file) which is a reference to the attachment file.
-The same `cid` value must be used as the image URL in HTML (using `cid:` as the URL protocol, see example below).
-
-**NB!** the cid value should be as unique as possible!
-
- var cid_value = Date.now() + '.image.jpg';
- var html = 'Embedded image: <img src="cid:' + cid_value + '" />';
- var attachments = [{
- filename: 'image.png',
- contents: IMAGE_CONTENTS,
- cid: cid_value
- }];
-
-Issues
-------
-
-Use [Nodemailer Issue tracker](https://github.com/andris9/Nodemailer/issues) to report additional shortcomings, bugs, feature requests etc.
-
-### Charsets
-
-Currently the only allowed charset is UTF-8. This is probably not going to change.
-
-### Slow
-
-SMTP connections are not shared - if you want to send several e-mails to the same domain in a row, then for every mail a new connection is created and closed afterwards. Together with TLS negotiation this can turn out to be pretty slow. Nodemailer is not the best choice for spamming!
-
-### Attachments
-
-Do not use large attachments as the attachment contents are read into memory and the final message body is combined into one large string before sending.
-
-Contributors
-------------
-
-See [Nodemailer/contributors](https://github.com/andris9/Nodemailer/contributors) for a live list
-
-License
--------
-
-**Nodemailer** is licensed under [MIT license](https://github.com/andris9/Nodemailer/blob/master/LICENSE). Basically you can do whatever you want to with it.
+This is a project for a new version of Nodemailer, built from scratch.
Oops, something went wrong. Retry.

0 comments on commit b9fcc04

Please sign in to comment.