Ir para conteúdo
Fórum Script Brasil
  • 0

Envios de emails em massa - VB.NET


JOAO EDUARDO

Pergunta

Olá, pessoal, sou novo aqui no fórum e to precisando de uma ajuda de vocês. Tenho uma web application desenvolvida em VB.NET e BD em Access.

Desenvolvi um mecanismo no proprío .NET para o envio coletivo de emails utilizando a classe system.net.mail. Estava tudo bem até o servidor de hospedagem impor um limite no smtp de 100 mensagens por hora.

Agora terei que implementar o código com a adição de uma caixa postal de envio para cada 100 emails enviados, respeitando a limitação do servidor, no entanto estou com algumas dificuldades de como fazer. O código da pág de envio é este:

<%@ Page Language="VB" EnableSessionState=True validateRequest="false" %>

<%@ Register TagPrefix="MeusControles" TagName="Menu" Src="~/painel/menu.ascx" %>

<%@ Register TagPrefix="MeusControles" TagName="Rodape" Src="~/painel/rodape.ascx" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.Oledb" %>

<%@ Import Namespace="System.Net.Mail" %>

&lt;script runat="server">

sub Page_Load

dim sql,acao,sessao AS String

Dim conexao As OleDbConnection

Dim comando As OleDbCommand

Dim oReader As OleDbDataReader

conexao = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=e:\home\editorarsa\dados\AssinantesEdRSA.mdb;")

conexao.Open()

'sessao = Request.QueryString("sessao")

'acao = Request.QueryString("acao")

'if(Request.QueryString("uid") = "") then

'Response.Redirect("http://www.editorarsa.com.br/painel/login.html")

'end if

'If (Request.QueryString("spr") = "") Then

'Response.Redirect("http://www.editorarsa.com.br/painel/login.html")

'End If

'If (sessao = "") Then

'Response.Redirect("http://www.editorarsa.com.br/painel/login.html")

'ElseIf (sessao <> Session.SessionID) Then

'Response.Redirect("http://www.editorarsa.com.br/painel/logout.aspx")

'End If

sql = "SELECT DISTINCT email FROM AssinantesEdRSA where (email like '%@%')"

If (Request.Form("enviar_para") = "A") Then

'[A] Envia somente para os Ativos

sql &= " and status='A' "

ElseIf (Request.Form("enviar_para") = "I") Then

' Envia somente para os Inativos

sql &= " and status='I' "

Else

'[T] - é para todos... não faz nada

End If

comando = New OleDbCommand(sql, conexao)

oReader = comando.ExecuteReader()

lblEmails.Text = ""

While oReader.Read()

Dim smtpMssg As New MailMessage()

smtpMssg = New System.Net.Mail.MailMessage

Dim SmtpClient As New SmtpClient()

SmtpClient.Credentials = New System.Net.NetworkCredential("meuemaill", "senha")

SmtpClient.Host = "smtp.editorarsa.com.br"

'Importante: Servidor SMTP

'http://site.locaweb.com.br/suporte/tutoriais/aspnet/env_email_aspnet.asp

'Define qual o host a ser usado para envio de mensagens, na locaweb é smtp2.locaweb.com.br

'smtpMssg.From = "webmaster@editorarsa.com.br"

'smtpMssg.From = "editorarsa@uol.com.br"

smtpMssg.From = New System.Net.Mail.MailAddressCollection("editorarsa@editorarsa.com.br")

smtpMssg.To.Add(oReader("email").ToString())

smtpMssg.Priority = MailPriority.Normal 'Normal/High/Low

smtpMssg.IsBodyHtml = True 'Enviar em formato HTML

smtpMssg.Subject = Request.Form("assunto")

smtpMssg.Body = "<TABLE WIDTH=700 HEIGHT=80><TR><TD><IMG SRC='http://www.editorarsa.com.br/barra_topo_email.gif'></TD></TR><TR><TD>" & Request.Form("body") & "</TD></TR></TABLE>"

smtpMssg.Body &= "<!-- Inicio do Rodape --><br><br><br><br><br><br><table border=1 width='100%' style='font-family: Arial; font-size: 8 pt' bordercolor=808080 cellspacing=0 cellpadding=5 bgcolor=EFEFEF><tr><td width='100%'><p align=left><b><u>Política de Privacidade</u></b><br> Você está recebendo este e-mail por estar cadastrado(a) para receber nossos informativos. Para conhecer mais sobre os serviços oferecidos pela <b>Editora RSA</b> acesse o site <a href='http://www.editorarsa.com.br'>http://www.editorarsa.com.br</a>. Caso deseje remover seu e-mail de nossa lista responda com o assunto "Remover".</td></tr></table><!-- Fim do Rodape -->"

SmtpClient.Send(smtpMssg)

lblEmails.Text &= oReader("email").ToString() & "<br>"

'Sleep para burlar bloqueio de spam

System.Threading.Thread.Sleep(3000)

End While

oReader.Close()

conexao.Close()

end sub

Desde já, agradeço a ajuda de vocês

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...