I am currently developing an application in c# using easendmail, all is working fine , i work with the socks. this is my code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EASendMail;
using System.IO;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Collections.Concurrent;
using System.Net.Sockets;
using System.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EASendMail;
using System.IO;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Collections.Concurrent;
using System.Net.Sockets;
using System.Net;
namespace ApplicationHJ
{
public class Sender
{
public string Socksl;
public string Letter;
public Sender(string socks, string letter)
{
Socksl = socks;
Letter = letter;
}
public List<ServerSocks> loadSocks()
{
var result = new List<ServerSocks>();
string fileSocks = Path.GetFullPath(Path.Combine(Application.StartupPath, this.Socksl));
var input = File.ReadAllText(fileSocks);
var r = new Regex(@"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})");
foreach (Match match in r.Matches(input))
{
string ip = match.Groups[1].Value;
int port = Convert.ToInt32(match.Groups[2].Value);
ServerSocks bi = new ServerSocks();
bi.IpAddress = IPAddress.Parse(ip);
bi.Port = port;
result.Add(bi);
}
return result;
}
public void Exploit()
{
List<string> arRcpt = new List<string>();
Console.ReadLine();
string fileName;
OpenFileDialog fd = new OpenFileDialog();
fd.ShowDialog();
fileName = fd.FileName;
System.IO.StreamReader file = new System.IO.StreamReader(fileName);
var logFile = File.ReadAllLines(fileName);
file.Close();
arRcpt = new List<string>(logFile);
int nRcpt = arRcpt.Count;
SmtpMail[] arMail = new SmtpMail[nRcpt];
SmtpClient[] arSmtp = new SmtpClient[nRcpt];
SmtpClientAsyncResult[] arResult = new SmtpClientAsyncResult[nRcpt];
List<ServerSocks> list = loadSocks();
var oServer = new SmtpServer("");
for (int i = 0; i < nRcpt; i++)
{
arMail[i] = new SmtpMail("try it");
arSmtp[i] = new SmtpClient();
}
for (int i = 0; i < nRcpt; i++)
{
oServer.SocksProxyServer = list[i % list.Count].IpAddress.ToString();
oServer.SocksProxyPort = list[i % list.Count].Port;
oServer.ProxyProtocol = SocksProxyProtocol.Socks5;
oServer.SocksProxyUser = "login";
oServer.SocksProxyPassword = "password";
SmtpMail oMail = arMail[i];
oMail.SMIMERFCCompatibility = true;
oMail.From = new MailAddress("", "");
oMail.Subject = "Bonjour tous le monde";
oServer.HeloDomain = "";
oMail.ReplyTo = "";
oMail.Style = MailStyle.EASendMailStyle;
oMail.Priority = MailPriority.High;
oMail.EncryptionAlgorithm = EncryptionAlgorithmType.ENCRYPTION_ALGORITHM_RC2;
//the message will be send to this email
oMail.To = new AddressCollection(arRcpt[i]);
oMail.HeaderEncoding = HeaderEncodingType.EncodingBase64;
oMail.TextBody = "";
oMail.AutoTextBody = false;
try
{
string fileHtml = Path.GetFullPath(Path.Combine(Application.StartupPath, "Exploit1/lettercmb.html"));
//fileHtml = fileHtml.Replace("{random}", NumberOf7.ToString());
oMail.ImportHtmlBody(fileHtml, ImportHtmlBodyOptions.NoOptions);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
SmtpClient oSmtp = arSmtp[i];
arResult[i] = oSmtp.BeginSendMail(oServer, oMail, (AsyncCallback)null, (object)null);
Console.WriteLine(String.Format("Start to send email to {0} ...",
arRcpt[i] + i));
}
int nSent = 0;
while (nSent < nRcpt)
{
for (int i = 0; i < nRcpt; i++)
{
// this email has been sent
if (arResult[i] == null)
continue;
// wait for specified email ...
if (!arResult[i].AsyncWaitHandle.WaitOne(10, false))
{
continue;
}
try
{
// this email is finished, using EndSendMail to get result
arSmtp[i].EndSendMail(arResult[i]);
System.Threading.Thread.Sleep(1000 * 1);
Console.WriteLine(String.Format("Send email to {0} successfully", arRcpt[i]));
}
catch (Exception ep)
{
Console.WriteLine(
String.Format("Failed to send email to {0} with error {1}: ",
arRcpt[i] + i, ep.Message));
Console.ReadLine();
}
// Set this email result to null, then it won't be processed again
arResult[i] = null;
nSent++;
}
}
}
}
}
he send email then she take 3 second than he send another email.
i want if i have 4 socks for exemple he send 4 email in the same time , each email with a differentsocks, then he pause one second and send another 4 emails.
what i should do please ?
Edited by user Thursday, November 5, 2015 1:48:08 AM(UTC)
| Reason: Not specified