29.07.2013 Views

Master of Science thesis Fighting Spam

Master of Science thesis Fighting Spam

Master of Science thesis Fighting Spam

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

import <strong>Spam</strong>Cash.Utilities.Debugger;<br />

import <strong>Spam</strong>Cash.Client.Control;<br />

import <strong>Spam</strong>Cash.Client.MailHandler.OutgoingMailProcessor;<br />

import <strong>Spam</strong>Cash.Utilities.Cryptotools;<br />

import <strong>Spam</strong>Cash.Utilities.*;<br />

import <strong>Spam</strong>Cash.Client.MailHandler.CoinHeader;<br />

import javax.mail.internet.MimeMessage;<br />

public class SMTPProxy extends AbstractNonBlockingProxy<br />

{<br />

private Class className;<br />

private String lastCommand = "", partialMessage = "";<br />

private int buffers;<br />

private File tempFile;<br />

private boolean readingMail,processingDone;//, savingCoin;<br />

private OutgoingMailProcessor outgoingMailProcessor;<br />

private FileWriter oFile;<br />

private BufferedWriter bout;<br />

private PrintWriter out;<br />

public SMTPProxy(Control control, int port) throws Exception<br />

{<br />

super(control, port, 1);<br />

className = getClass();<br />

buffers = 0;<br />

readingMail = false;<br />

// savingCoin = false;<br />

outgoingMailProcessor = new OutgoingMailProcessor(control);<br />

Debugger.debug(className, 1, "Proxy is ready on port " + port);<br />

}<br />

protected String[] testServerCommand(String command)<br />

{<br />

if(processingDone && parseArgument(command, 0).equalsIgnoreCase("250"))<br />

{<br />

Debugger.debug(getClass(), 1, "Mail Sent succesfully.");<br />

processingDone = false;<br />

}<br />

}<br />

return new String[]<br />

{command};<br />

protected Object testClientCommand(String command) throws Exception<br />

{<br />

if( parseArgument(lastCommand, 0).equalsIgnoreCase("DATA"))<br />

{<br />

try<br />

{<br />

if(!readingMail)<br />

{<br />

tempFile = new<br />

File(FileHandler.findNewFile(Config.outgoingMailDirectory));<br />

buffers.");<br />

}<br />

oFile = new FileWriter(tempFile);<br />

bout = new BufferedWriter(oFile);<br />

out = new PrintWriter(bout);<br />

readingMail = true;<br />

if( -1 == command.indexOf("\r\n.\r\n"))<br />

{<br />

buffers++;<br />

Debugger.debug(className, 3, "Message used " + buffers + "<br />

out.write(command);<br />

//Return "" so that nothing is sent to the server.<br />

return "";<br />

296

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!