Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/05/2009, 00:26
mallu1983
 
Fecha de Ingreso: mayo-2009
Mensajes: 42
Antigüedad: 15 años
Puntos: 0
Respuesta: ¿Cuantos correos puedo mandar en VB con SMTP?

Te mando el trozo de codigo utilizado para enviar correos masivos. Me comentas si tengo que controlar algo para el tema del numero de correos?

Private Sub FormatMSG()
NotificadorSMTP.Refresh
Dim d As Byte
Dim fileB64 As String
If Dir(App.Path & "\email.eml") <> "" Then Kill (App.Path & "\email.eml")
Call WriteStatus("Formando Mensaje...." & vbCrLf)
Asunto = SUBJECT
remitente = REMI_DES & " <" & REMI_VAR & ">"
str1 = DEST_VAR
pos = InStr(1, DEST_VAR, ";", vbTextCompare)
While Not pos = 0
Mid(DEST_VAR, pos, 1) = ", "
pos = InStr(pos + 1, DEST_VAR, ";", vbTextCompare)
Wend
destinatario = DEST_VAR
DEST_VAR = str1
'MsgBox FILES_VAR
mailstring = "From: " & remitente & vbCrLf & "To: " & destinatario & vbCrLf & "Subject: " & Asunto & vbCrLf & Text6.Text & vbCrLf & Text2.Text & vbCrLf & Text3.Text & vbCrLf & BODY & vbCrLf & vbCrLf
If Len(FILES_VAR) = 0 Then
mailstring = mailstring & vbcrl & Text2.Text & "--"
EMLFILE = FreeFile
Open App.Path & "\email.eml" For Binary As EMLFILE
ProgressBar1.Max = Len(mailstring) + 10
ProgressBar1.Value = 0
For t = 1 To Len(mailstring)
Put EMLFILE, , CByte(Asc(Mid(mailstring, t, 1)))
Next
Close (EMLFILE)
Else
EMLFILE = FreeFile
Open App.Path & "\email.eml" For Binary As EMLFILE
ProgressBar1.Max = Len(mailstring) + 10
ProgressBar1.Value = 0
For t = 1 To Len(mailstring)
Put EMLFILE, , CByte(Asc(Mid(mailstring, t, 1)))
Next
mailstring = ""
pos = InStr(1, FILES_VAR, ";", vbTextCompare)
While pos <> 0
pfile = Mid(FILES_VAR, 1, pos - 1)
FILES_VAR = Right(FILES_VAR, Len(FILES_VAR) - (Len(pfile) + 1))
If Dir(pfile) <> "" Then
For t = 0 To Len(pfile) - 1
pfname = Mid(pfile, Len(pfile) - t, t)
If Left(pfname, 1) = "\" Then
pfname = Right(pfile, t)
Exit For
End If
Next
Call WriteStatus("Adjuntando " & pfname & "...." & vbCrLf)
mailstring = mailstring & vbcrl & Text2.Text & vbCrLf
mailstring = mailstring & Left(Text4.Text, Len(Text4.Text) - 2) & Chr(34) & pfname & Chr(34) & vbCrLf
mailstring = mailstring & Left(Text5.Text, Len(Text5.Text) - 2) & Chr(34) & pfname & Chr(34) & vbCrLf & vbCrLf
For t = 1 To Len(mailstring)
Put EMLFILE, , CByte(Asc(Mid(mailstring, t, 1)))
Next
mailstring = ""
Call FileCodB64(CStr(pfile))
End If
pos = InStr(1, FILES_VAR, ";", vbTextCompare)
Wend

pfile = Trim(FILES_VAR)
If Dir(pfile) <> "" Then
For t = 0 To Len(pfile) - 1
pfname = Mid(pfile, Len(pfile) - t, t)
If Left(pfname, 1) = "\" Then
pfname = Right(pfile, t)
Exit For
End If
Next
Call WriteStatus("Adjuntando " & pfname & "...." & vbCrLf)
mailstring = mailstring & vbcrl & Text2.Text & vbCrLf
mailstring = mailstring & Left(Text4.Text, Len(Text4.Text) - 2) & Chr(34) & pfname & Chr(34) & vbCrLf
mailstring = mailstring & Left(Text5.Text, Len(Text5.Text) - 2) & Chr(34) & pfname & Chr(34) & vbCrLf & vbCrLf
For t = 1 To Len(mailstring)
Put EMLFILE, , CByte(Asc(Mid(mailstring, t, 1)))
Next
mailstring = ""
Call FileCodB64(CStr(pfile))

End If
mailstring = mailstring & vbCrLf & Text2.Text & "--"
For t = 1 To Len(mailstring)
Put EMLFILE, , CByte(Asc(Mid(mailstring, t, 1)))
Next
mailstring = ""
End If
Close (EMLFILE)
'enviar mensajes SMTP a los Destinatarios
Call WriteStatus("Asignando Destinatarios...." & vbCrLf)
pos = InStr(1, DEST_VAR, ";", vbTextCompare)
While Not pos = 0
Mid(DEST_VAR, pos, 1) = " "
pos = InStr(pos + 1, DEST_VAR, ";", vbTextCompare)
Wend
rcpt = DEST_VAR
Call WriteStatus("Enviando...." & vbCrLf)
Call SendSMTPMsg(Trim(rcpt))
End Sub

Private Sub SendSMTPMsg(rcpt)
PASO = 0
If wsk.State = sckClosed Then
ORIG = REMI_VAR
DEST = rcpt
wsk.Protocol = sckTCPProtocol
wsk.RemoteHost = SMTP_SERVER
wsk.RemotePort = SMTP_PORT
wsk.Connect
End If
End Sub