Created
December 22, 2011 09:23
-
-
Save imod/1509654 to your computer and use it in GitHub Desktop.
runDumbster with web
This file contains 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 java.util.Iterator; | |
import com.dumbster.smtp.SimpleSmtpServer | |
import org.mortbay.jetty.Server | |
import org.mortbay.jetty.servlet.* | |
import groovy.servlet.* | |
import javax.servlet.http.* | |
@Grapes([ | |
@Grab(group='dumbster', module='dumbster', version='1.6'), | |
@Grab(group='javax.mail', module='mail', version='1.4.4'), | |
@Grab(group = 'org.mortbay.jetty', module = 'jetty-embedded', version = '6.1.0') | |
]) | |
@GrabExclude('javax.activation:activation') | |
class MyServlet extends GroovyServlet { | |
def dumbster | |
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { | |
response.setContentType("text/html"); | |
def out = response.writer | |
def msgId = request.getParameter("msgId"); | |
if(msgId){ | |
out.write "<html><head><title>Inbox</title></head><body>" | |
def msg = dumbster.getReceivedEmail().find { mail -> | |
mail.getHeaderValue('Message-ID') == msgId | |
} | |
if(msg){ | |
out.write "<table>" | |
msg.getHeaderNames().each { | |
out.write "<tr><td><b>$it</b></td><td>" | |
out.write msg.getHeaderValue(it) + "</td></tr>" | |
} | |
out.write "</table>" | |
} | |
} | |
out.write """ | |
<html><head><title>Inbox</title></head><body> | |
<table width='100%' border='1'> | |
<tr style='font-weight:bold;'><td width='20%'>From</td><td width='20%'>To</td><td width='40%'>Subject</td><td width='20%'>Date</td></tr> | |
""" | |
dumbster.getReceivedEmail().each { mail -> | |
out.write "<tr><td>" | |
out.write mail.getHeaderValue('From')+"</td><td>" | |
out.write mail.getHeaderValue('To')+"</td><td>" | |
out.write "<a href='show.g?msgId="+mail.getHeaderValue('Message-ID') +"'>" + mail.getHeaderValue('Subject') + "</a>" | |
out.write "</td><td>"+mail.getHeaderValue('Date') | |
out.write "</td></tr>" | |
} | |
} | |
} | |
def runDumbster(duration){ | |
println "start dumbster..." | |
def dumbster = com.dumbster.smtp.SimpleSmtpServer.start(9999) | |
def jetty = new Server(8080) | |
def jcontext = new Context(jetty, "/", Context.SESSIONS) | |
jcontext.resourceBase = "." | |
jcontext.addServlet(new ServletHolder(new MyServlet(dumbster: dumbster)), "*.g") | |
jetty.start() | |
sleep duration | |
println "...stoping dumbster" | |
dumbster.stop() | |
jetty.stop() | |
} | |
runDumbster(100000) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment