Skip to content

Instantly share code, notes, and snippets.

@zhuangya
Last active December 19, 2015 18:28
Show Gist options
  • Select an option

  • Save zhuangya/5998434 to your computer and use it in GitHub Desktop.

Select an option

Save zhuangya/5998434 to your computer and use it in GitHub Desktop.
nodemailer = require 'nodemailer'
http = require 'http'
q = require 'q'
oldIp = ''
opt = {
from: '___'
pass: '___'
to: '___'
gap: 10 * 60 * 1000
}
# SMTP "pool":
smtpTransport = nodemailer.createTransport 'SMTP',
service: 'GMail'
auth:
user: opt.from
pass: opt.pass
getIp = (locator)->
console.log 'getting ip'
deferred = q.defer()
locator = locator or 'http://ifconfig.me/ip'
deferred = q.defer()
http.get locator, (resp) ->
resp.on 'data', (chunk) ->
ip = '' + chunk
if ip is oldIp
deferred.reject 'same ip'
else
oldIp = ip
deferred.resolve ip
deferred.promise
getMail = (context) ->
# options:
mailOptions =
from: opt.from
to: opt.to
subject: 'Hello from node'
text: context
sendMail = ->
setTimeout ->
getIp().then (ip) ->
console.log ip
smtpTransport.sendMail getMail(ip), (err, resp) ->
console.error err if err
console.log resp unless err
sendMail()
, opt.gap # Send ip address every 10 mins
sendMail()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment