Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 41 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,78 @@
## gulp-mail
# gulp-mail

<a href="https://www.npmjs.com/package/gulp-mail"><img width="134" height="20" src="https://img.shields.io/npm/dm/gulp-mail.svg"></a>&nbsp;&nbsp;<a href="https://github.com/fritx/gulp-mail"><img width="78" height="20" src="http://img.shields.io/badge/license-MIT-blue.svg"></a>

A [gulp](https://github.com/gulpjs/gulp) wrapper for [Nodemailer](https://nodemailer.com) used to quickly send emails from tasks and/or the command-line during development or testing.
> A [gulp](https://github.com/gulpjs/gulp) wrapper for [Nodemailer](https://nodemailer.com) used to quickly send emails from tasks and/or the command-line during development or testing.

`gulp-mail` is based on [gulp-mailer](https://github.com/meerkats/gulp-mailer), which is not available on [npm](https://www.npmjs.com/).

### Installation
## Installation

Installing via [npm](https://www.npmjs.org/package/gulp-mail):

```sh
npm install --save-dev gulp-mail
```

### Usage
## Usage

### `mail(options)`

#### `mail(options)`
- options: `Object`
* options: `Object`

### Options
## Options

`gulp-mail` uses Nodemailer v0.7.1, which has been deprecated for some time. It is, however, simple and stable. Available options for `gulp-mail` are:
`gulp-mail` uses **Nodemailer v0.7.1**, which has been deprecated for some time. It is, however, simple and stable. Available options for `gulp-mail` are:

##### options.smtp
Type: `Object`
Contains required SMTP configuration values. (See the example below.)
* ### `options.smtp`
Type: `Object`\
Contains required SMTP configuration values. (See the example below.)

##### options.to
Type: `String|Array`
A string or array containing one or more than one recipient address, respectively.
* ### `options.to`
Type: `String|Array`\
A string or array containing one or more than one recipient address, respectively.

##### options.from
Type: `String`
The display name for the sender.
* ### `options.from`
Type: `String`\
The display name for the sender.

##### options.subject
Type: `String`
The email subject line. If not provided, a default subject line is generated from the source filename as `[TEST] path.basename`.
* ### `options.subject`
Type: `String`\
The email subject line. If not provided, a default subject line is generated from the source filename as `[TEST] path.basename`.

##### options.html
Type: `String`
The HTML body of the email. If not provided, the source file becomes the message body.
* ### `options.html`
Type: `String`\
The HTML body of the email. If not provided, the source file becomes the message body.

##### options.text
Type: `String`
The plaintext body of the email. If not provided, Nodemailer generates this based on the source file.
* ### `options.text`
Type: `String`\
The plaintext body of the email. If not provided, Nodemailer generates this based on the source file.

### Example
## Example

Currently, `gulp-mail` takes in piped streams and sends emails via SMTP only.

```js
var gulp = require('gulp');
var mail = require('gulp-mail');

var smtpInfo = {
auth: {
user: 'foo@163.com',
pass: '123456'
},
host: 'smtp.163.com',
secureConnection: true,
port: 465
var smtpConfig = {
host: 'smtp.example.com',
port: 465,
secureConnection: true,
auth: {
user: 'user@example.com',
pass: 'correcthorsebatterystaple'
}
};

gulp.task('mail', function () {
return gulp.src('./mails/i-love-you.html')
return gulp.src('path/to/message.html')
.pipe(mail({
subject: 'Surprise!?',
to: [
'bar@gmail.com'
'bar@example.com'
],
from: 'Foo <foo@163.com>',
smtp: smtpInfo
from: 'Example <user@example.com>',
subject: 'A message from gulp-mail',
smtp: smtpConfig
}));
});
```
30 changes: 12 additions & 18 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
var mail = require('./')
var mailInfo = require('./test/mail-info') // private
var gulp = require('gulp')
var mail = require('./');
var smtpConfig = require('./test/smtp-config');
var gulp = require('gulp');

gulp.task('test', function(){
// send mail
return gulp.src([
'./test/i-love-you.html',
'./test/1.html',
'./test/2.html'
])
.pipe(mail({
to: mailInfo.to,
from: mailInfo.from,
smtp: mailInfo.smtp
}))
// blocked after sending
// becase transporter remained working
})
gulp.task('test', function () {
return gulp.src('./test/message.html').pipe(
mail({
to: smtpConfig.to,
from: smtpConfig.from,
smtp: smtpConfig.smtp,
})
);
});
1 change: 0 additions & 1 deletion test/1.html

This file was deleted.

1 change: 0 additions & 1 deletion test/2.html

This file was deleted.

1 change: 0 additions & 1 deletion test/i-love-you.html

This file was deleted.

16 changes: 0 additions & 16 deletions test/mail-info.example.js

This file was deleted.

11 changes: 11 additions & 0 deletions test/message.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Message</title>
</head>
<body>
<h1>This email was sent with gulp-mail!</h1>
</body>
</html>
16 changes: 16 additions & 0 deletions test/smtp-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
'use strict';

// Replace the credentials below with your own in order to test
module.exports = {
to: 'to@example.com',
from: 'user@example.com',
smtp: {
host: 'smtp.example.com',
port: 465,
secureConnection: true,
auth: {
user: 'user@example.com',
pass: 'correcthorsebatterystaple',
},
},
};