Created
December 24, 2009 19:29
-
-
Save slevine/263323 to your computer and use it in GitHub Desktop.
Groovy Mailer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import javax.mail.Session | |
import javax.mail.Message | |
import javax.mail.internet.MimeMessage | |
import javax.mail.internet.InternetAddress | |
@Grapes([ | |
@Grab(group = 'javax.activation', module = 'activation', version = '1.1'), | |
@Grab(group = 'javax.mail', module = 'mail', version = '1.4') | |
]) | |
class Mailer { | |
static def s_config = new ConfigSlurper("message").parse(new File('MailProperties.groovy').toURL()) | |
static def deliverIpAddressChangeMessage(ipAddress) { | |
def subject = "IP Address Changed to ${ipAddress}" | |
def message = "IP Address changed to ${ipAddress}.\nPlease update your configurations." | |
sendMail("${s_config.message.to}".toString(), "${s_config.message.from}".toString(), subject, message) | |
} | |
static private sendMail(to, from, subject, message) { | |
def session = Session.getDefaultInstance(s_config.toProperties(), null) | |
def mimeMessage = new MimeMessage(session) | |
mimeMessage.setRecipients Message.RecipientType.TO, to | |
mimeMessage.setSubject subject | |
mimeMessage.setFrom new InternetAddress(from) | |
mimeMessage.setContent message.toString(), "text/plain" | |
def transport = session.getTransport("smtp") | |
transport.connect "${s_config.mail.username}".toString(), "${s_config.mail.password}".toString() | |
transport.sendMessage mimeMessage, mimeMessage.allRecipients | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env groovy | |
// IP Address Regex http://www.regular-expressions.info/examples.html | |
currentIp = ("http://whatsmyip.us/".toURL().text =~ /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/)[0] | |
println currentIp | |
def ipLog = new File("ip-log.txt") | |
recentIp = ipLog.readLines().last().tokenize(",").last().trim() | |
if (currentIp != recentIp) { | |
Mailer.deliverIpAddressChangeMessage currentIp | |
println "IP Address has changed, it is now: ${currentIp}. Sending Message." | |
ipLog << "${new Date()}, ${currentIp}\n" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment