import sys
import os
import smtplib
import random
from sys import stdout

SMTP_Server = "smtp.club-internet.fr"
FROM = "tnt_spidey@hotmail.com"

alphanum = ['a', ' ', 'z', ' ', 'e', ' ', 'r', ' ', 't', 'y', 'u', 'i', 'o', 'p', 'q', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'w', 'x', 'c', 'v', 'b', 'n', ' ']

def rand_text(lines):
	subject = str()

	for l in range(int(lines)):
		for i in range(int(random.uniform(20,100))):
			subject = subject + random.choice(alphanum)
		subject = subject + "\r\n"

	return subject

# aps file_name [nb_lines]
def main(args):

	if len(args) < 5:
		print "Syntax: %s smtp_server sender_mail receiver_mail nb_time [nb_lines_in_mail]" % args[0]
		return

	stdout.write("Sending")
	stdout.flush()

	smtp_server = args[1]
	sender_mail = args[2]
	receiver_mail = args[3]
	nb_time = args[4]

	for i in range(int(nb_time)):

		# Add the From: and To: headers at the start!
		msg = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n" % (sender_mail, receiver_mail, rand_text(1)))

		if len(args) > 3:
			msg = msg + rand_text(args[5])
		else:
			msg = msg + rand_text(random.uniform(20,150))

		try:
			server = smtplib.SMTP(smtp_server)
			server.sendmail(sender_mail, receiver_mail, msg)
			server.quit()
			stdout.write(".")
			stdout.flush()
		except smtplib.SMTPDataError:
			stdout.write("X")
			stdout.flush()

	print ""
	print "%s messages sended" % nb_time


if __name__ == '__main__':
	main(sys.argv)
