Usuário com melhor resposta
Envio de E-mail em massa

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
Respostas
-
Dá forma que fiz acima, faz um loop para adicionar os endereços de e-mail e chama o send uma vez!
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 8 de agosto de 2016 12:37
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); -
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;
-
Dá forma que fiz acima, faz um loop para adicionar os endereços de e-mail e chama o send uma vez!
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 8 de agosto de 2016 12:37
-
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; -
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.
-
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.
-