Отправить почту каждый раз с разными IP - PullRequest
2 голосов
/ 14 января 2012

У меня есть Win Server 2003 с 3 ips, я делаю программу, которая отправляет массовые письма, но я хотел бы переключаться между 3 ips при отправке писем, например, первая почта отправляется с использованием первого ip и второе письмо с использованием второго ip и третье письмо с использованием третьего ip, я знаю, как отправлять почту с использованием C #, но есть ли класс, который выбирает switch ip или что-то еще, я на самом деле не ожидаю кодов, я хочу любую идею, чтобы я мог начать копать.

Ответы [ 2 ]

3 голосов
/ 14 января 2012

3 IP не достаточно. У вас есть 3 почтовых сервера, использующих 3 ips? Если да, то это возможно.

Я бы использовал Random ...

Random r = new Random();
int mailServer = r.Next(1, 3);
SmtpClient client;

if (mailServer == 1) client = new SmtpClient("mail1.yourdomain.com");
else if (mailServer == 2) client = new SmtpClient("mail2.yourdomain.com");
else client = new SmtpClient("mail3.yourdomain.com");

client.Send(...);
1 голос
/ 14 января 2012

SmtpClient конструктор, как вы знаете, принимает адрес вашего сервера, поэтому вы можете использовать его таким образом

class Program
{
    static string[] addresses = new string[] 
        { "192.168.0.1", "215.100.100.100", "110.100.100.100" };

    static void Main(string[] args)
    {
        SmtpClient server1 = GetClient(0);
        // stuff to send mail with 1st server
        SmtpClient server2 = GetClient(1);
        // stuff to send mail with 2nd server
        // etc.

    }

    private static SmtpClient GetClient(int id)
    {
        if (addresses[id] != null)
            return new SmtpClient(addresses[id]);
        throw new ArgumentException("No such server");
    }
}
...