Avatar billede moejensen Nybegynder
22. juni 2004 - 21:00 Der er 1 løsning

Udsend Nyhedsbrev med ASPMail

Jeg er ved at lave et modul til at udsende nyhedsbreve, og i den forbindelse anvender jeg AspMail.

Jeg har lavet følgende kode, der bliver gennemløbet så længe der er mailadresser i databasen.

Do while not send.eof
    Name = send("Name")
    TopTxt = Replace(TopTxt,"[Username]",Name)
    IDpas= send("IDpas")   
    Emailad= Send("Emailad")
   
    'Makes the bodystring for plain TEXT mails
    BodyTexttoTXT = TopTxt & vbCrLf & vbCrLf & bodytextTXT & vbCrLf & vbCrLf & "-----------------" & vbCrLf
    BodyTexttoTXT = BodyTexttoTXT + BottTxt & vbCrlf & Map & "confirm.asp?unsign=" & IDpas & vbCrlf & vbCrlf
    BodyTexttoTXT = BodyTexttoTXT + com
   
    'Makes the bodystring for plain HTML mails
    BodyTexttoHTML = TopTxt & "<br><br>" & bodytextHTML & "<br><br>" & "-----------------" & "<br>"
    BodyTexttoHTML = BodyTexttoHTML + BottTxt & "<br><a href="""& Map &"confirm.asp?unsign="& IDpas &""">" & Map & "confirm.asp?unsign=" & IDpas & "</a><br><br>"
    BodyTexttoHTML = BodyTexttoHTML + com
   
    'Variabels for HTML and PLAIN TEXT mail
    BOUNDARY    = "----xxxxxx"
    TEXT_HEADER = "--" & BOUNDARY & VBCrLf & "Content-Type: text/plain;" & VBCrLf & _
    "Content-Transfer-Encoding: 7bit" & VBCrLf & VBCrLf
    HTML_HEADER = "--" & BOUNDARY & VBCrLf & "Content-Type: text/html;" & VBCrLf & _
    "Content-Transfer-Encoding: 7bit" & VBCrLf & VBCrLf
    MP_FOOTER  = "--" & BOUNDARY & "--" & VBCrLf
   
    'Make the hole mailstring with plaintext and html
    BodyTextto = TEXT_HEADER & BodyTexttoTXT & VBCrLf & HTML_HEADER & BodyTexttoHTML & VBCrLf & MP_FOOTER
   
    'most control methods throw an exception if an error occurs so we will use an On Error statement
    On Error Resume Next
   
    Set svgMailer = Server.CreateObject("SMTPsvg.Mailer")
        ' This is my local SMTP server
        svgMailer.Remotehost = smtpserver
       
        ' mail config settings
        svgMailer.Charset = CharsetStr
        svgMailer.FromName = Sendername
        svgMailer.FromAddress = Sender
       
        if UsernameEmail<>"no" Then
            svgMailer.Username = UsernameEmail
        End if
       
        if PasswordEmail<>"no" Then
            svgMailer.Password = PasswordEmail
        End if
       
        svgMailer.ContentType = "multipart/alternative; boundary=""" & BOUNDARY & """"
        svgMailer.AddRecipient Name,Emailad
        svgMailer.Subject = Subject
        svgMailer.BodyText = BodyTextto
        svgMailer.Priority = Priority
       
        if  svgMailer.SendMail then
            ErrorResult=""
        else
            ErrorResult = svgMailer.Response
        end if
    set svgMailer = nothing
   
    if ErrorResult<>"" AND countm=0 then
        Response.write "<p align=""center"">Fejl. Mailen er ikke sendt: " & ErrorResult & "</p>"
        countm=1
    End if
   
    if 0 <> Err then
        Err = 0
    End if
    send.movenext
loop

JEg har tre problemer:

1) Skriptet timer ofte ud efter et stykke tid, og som regel kommer der kun en mail igennem.

2) Den mail der kommer igennem, ser ikke ud til at være i rigitg HTML

3) Jeg er begyndt at få følgende fejl: [11004] Valid name, no data record of requested type

Vil scriptet kunne håndtere flere tusinde mails, eller er der en bedre måde at gøre det på, så brugeren ikke er tvunget til at vente på at scriptet kører færdigt?? Jeg har hørg om noget mailmerg eller sådan noget. Er det noget alle kan anvende?
Avatar billede moejensen Nybegynder
23. juni 2004 - 00:10 #1
Jeg har selv løst det. Er gået over til JMail
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester