Skip to content

Don't laugh it works. It enables to send emails with phpmailer from nodejs.

Notifications You must be signed in to change notification settings

shimondoodkin/nodejs-phpmailer

Repository files navigation

##nodejs-phpmailer At the moment there is no mime encoding email module for node js. I wanted to send beutiful registration emails with inline images.

So I did some integration.

It is not good for frequent emailing. Because it might be slow.

also php5-cli should be installed.

//how to use:

var phpmailer=require('nodejs-phpmailer');

// defaults for gmail
phpmailer.options={
 "IsSMTP":true,
 "SMTPSecure":"ssl",
 "Host":"smtp.gmail.com",
 "Port":465,
 "SMTPAuth":true,
 "Username":"username@gmail.com",
 "Password":"********",
 "From":"username@gmail.com",
 "FromName":"My site's mailer",
 "Sender":"username@gmail.com",
 //"AddReplyTo":[{"email":"shimondoo@gmail.com","name":"Replies for my site Doodkin"}],
 //"AddAddress":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 //"AddCC":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 //"AddBCC":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "IsHTML":true,
 "AutoImages":true,
 "AutoImagesPath":__dirname."/images/",
};

//or 

// defaults for localhost
phpmailer.options={
 "IsSMTP":true,
 //"SMTPSecure":"ssl",
 "Host":"localhost",
 "Port":25,
 //"SMTPAuth":true,
 //"Username":"username@gmail.com",
 //"Password":"********",
 "From":"username@gmail.com",
 "FromName":"My site's mailer",
 "Sender":"username@gmail.com",
 //"AddReplyTo":[{"email":"shimondoo@gmail.com","name":"Replies for my site Doodkin"}],
 //"AddAddress":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 //"AddCC":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 //"AddBCC":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "IsHTML":true,
 "AutoImages":true,
 "AutoImagesPath":__dirname."/images/",
};

send example:

phpmailer.send({
 "AddReplyTo":[{"email":"shimondoo@gmail.com","name":"Replies for my site Doodkin"}],
 "AddAddress":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "AddCC":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "AddBCC":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "Subject":"Test 1 Subject",
 "Body":"<html><head></head><body background=\"phpmailer_mini.gif\"><h1>Test 1 of PHPMailer html</h1><table ><tr><td>sadfasdfasdf</td></tr></table><p>This is a test picture: <img src=\"phpmailer.gif\" /></p></body></html>",
 "AltBody":"Test 1 Alt Body",
 "AddAttachment":
 [
 {
  "path":"/home/someone/www/dev.username/deps/nodejs-phpemail/PHPMailer_v5.1/examples/images/phpmailer_mini.gif",
  "name":"phpmailer.gif"
 }
 ]
});

simple html send example:

phpmailer.send({
 "AddAddress":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "Subject":"Test 1 Subject",
 "Body":"<html><head></head><body background=\"phpmailer_mini.gif\"><h1>Test 1 of PHPMailer html</h1><table ><tr><td>sadfasdfasdf</td></tr></table><p>This is a test picture: <img src=\"phpmailer.gif\" /></p></body></html>",
 "AltBody":"Test 1 Alt Body",
 "AddAttachment":
 [
 {
  "path":"/home/someone/www/dev.username/deps/nodejs-phpemail/PHPMailer_v5.1/examples/images/phpmailer_mini.gif",
  "name":"phpmailer.gif"
 }
 ]
});

simple text send example:

phpmailer.send({
 "AddAddress":[{"email":"helpmepro1@gmail.com","name":"Replies for my site Helpmepro1"}],
 "Subject":"Test 1 Subject",
 "IsHTML":false,
 "Body":"Test  text Body",
 "AddAttachment":
 [
 {
  "path":"/home/someone/www/dev.username/deps/nodejs-phpemail/PHPMailer_v5.1/examples/images/phpmailer_mini.gif",
  "name":"phpmailer.gif"
 }
 ]
});

simpler text send example:

phpmailer.send({
 "AddAddress":["helpmepro1@gmail.com"],
 "Subject":"Test 1 Subject",
 "Body":"Test text Body",
 "IsHTML":false,
});

AddAddress,AddReplyTo,AddCC,AddBCC are arrays of objects like

{
 "email":"example@example.com",
 "name":"Recipient name"
}

or

"example@example.com"

So it could be an object with properties or a string.

if "AutoImages" is true then it searches for img tags and for background tags and replaces them with cid and adds an item to AddEmbeddedImage with AutoImagesPath.

AddEmbeddedImage is an array of objects like

{
 "path":__dirname."/phpmailer.gif",
 "cid":"logoimg"
}

AddAttachment is an array of objects like

{
 "path":__dirname."/phpmailer_mini.gif",
 "name":"phpmailer_mini.gif"
}

Also you could use a template engine to generate the html = )

About

Don't laugh it works. It enables to send emails with phpmailer from nodejs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published