none
Envio de E-mail em massa RRS feed

  • Pergunta

  • Amigos, Estou com um código que envia 12 a 18 mil e-mails um a um, porém leva muito tempo.

    Preciso de uma ajuda para enviar mais rápido, pensei em fazer uma pilha com esses e-mails, porém o componente SMTP ou o outlook.Application() não suportam essa quantidade de e-mails.

    Preciso de um HELP para como quebrar esses e-mails e mandar por blocos. Até o momento não sei como fazer uma coisa prática e rápida, pois sei que podemos colocar um repetidor por exemplo de tanto até tanto faz isso e assim por diante mas ficará um código gigante não?

    Aguardo uma ajuda.

    Att,

    Filipe

    quarta-feira, 3 de agosto de 2016 14:56

Respostas

Todas as Respostas

  • Algo assim não funciona?

                System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
                mail.Subject = "Assunto teste";
                mail.Body = "teste";
                mail.From = new System.Net.Mail.MailAddress("meuemail@gmail.com");
                
                for (int i = 1; i <= 18000; i++)
    {
                    string email = string.Format("teste{0}@dominio.com.br",i);
       mail.To.Add(email);
    }

                System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
                smtpClient.Host = "smtp.gmail.com";
                smtpClient.Port = 587;
                smtpClient.EnableSsl = true;
                smtpClient.UseDefaultCredentials = true;
                smtpClient.Credentials = new System.Net.NetworkCredential("username", "password");
                smtpClient.Send(mail);

    quarta-feira, 3 de agosto de 2016 15:28
  • Amigo,

    um a um já envio, mas demora muito.

    fiz um loop em um listbox que seria quase o mesmo tipo. Agora criei a pilha e no mail.Bcc.Add(variavel com e-mails) ou bo outlook.application

    outlook.Recipient recipientBCC = null;
            recipientBCC = (outlook.Recipient)oMsg.Recipients.Add(_Email);
            recipientBCC.Type = (int)Microsoft.Office.Interop.Outlook.OlMailRecipientType.olBCC;

    quarta-feira, 3 de agosto de 2016 15:42
  • Dá forma que fiz acima, faz um loop para adicionar os endereços de e-mail e chama o send uma vez!
    quarta-feira, 3 de agosto de 2016 17:24
  • novamente apareceu o erro:

    Memória ou recursos do sistema insuficientes. Feche algumas janelas ou programas e tente novamente.

    vou postar o código do send mail

    outlook.Application oApp = new outlook.Application();

                //Criando mensagem
                outlook.MailItem oMsg = (outlook.MailItem)oApp.CreateItem(outlook.OlItemType.olMailItem);

                //mandar copia Para
                outlook.Recipient oRecip = (outlook.Recipient)oMsg.Recipients.Add("meuE-mail@meudominio.com.br");

                outlook.Recipient recipientBCC = null;

                for (int i = 1; i <= _Total; i++)
                {
                    email = string.Format(_Email, i);
                }

                //mandar copia Para
                recipientBCC = (outlook.Recipient)oMsg.Recipients.Add(email);
                recipientBCC.Type = (int)Microsoft.Office.Interop.Outlook.OlMailRecipientType.olBCC;

                oRecip.Resolve();

                //Setando as propriedades
                oMsg.Subject = _Assunto;
                oMsg.Body = _Corpo;

                //Anexar Arquivo nos e-mails
                String sSource = _Arquivo;
                int iPosition = (int)oMsg.Body.Length + 1;
                int iAttachType = (int)outlook.OlAttachmentType.olByValue;
                outlook.Attachment oAttach = oMsg.Attachments.Add(sSource, iAttachType, iPosition);

                //Enviar mensagem
                oMsg.Send();

                oMsg = null;
                oApp = null;

    quarta-feira, 3 de agosto de 2016 18:35
  • Bom dia filipemmaga,

    Apenas verificando, você conseguiu encontrar uma solução?

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 5 de agosto de 2016 12:55
    Moderador
  • Bom dia,

    Devido a falta de resposta do usuário

    essa thread está sendo fechada.

    Se o problema ainda estiver ocorrendo,

    favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 8 de agosto de 2016 12:38
    Moderador
  • Bom dia.

    achei uma solução, porém abri um novo threads com outro problema agora.

    terça-feira, 16 de agosto de 2016 14:14