Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[ASP] Auto e-mail resultaat

Annie
6 antwoorden
  • Ik heb de volgende SQL om 2 tabellen tegen elkaar te kunnen matchen.

    Bijvoorbeeld:

    Test.Model Test.Type
    BMW 316
    Mercedes SLK
    Opel Tigra
    Opel Calibra
    BMW 520

    Login.Model
    BMW email@email.com
    Opel jansen@jansen.com

    SQL:
    [code:1:5c6852ecab]
    ——————————————————————————–
    SELECT Test.Model, Test.Type, Login.Models, Login.Types, Login.Minlength,
    Login.Maxlength, Test.Loa, Test.Asking_price, Login.Minprice, Login.Maxprice,
    Test.Hull_Material, Login.Material, Login.Email

    FROM Test, Login

    WHERE Test.Model LIKE Login.Models AND Test.Type = Login.Types AND Test.Loa
    BETWEEN Login.Minlength AND Login.Maxlength AND Test.Asking_price BETWEEN
    Login.Minprice AND Login.Maxprice AND Test.Hull_Material = Login.Material
    ORDER BY Test.Model

    ——————————————————————————–
    [/code:1:5c6852ecab]


    Vervolgens moeten de resultaten (als die er zijn) gemaild worden naar de juiste persoon. Dit werkt door middel van:


    [code:1:5c6852ecab]
    ——————————————————————————–
    <%
    While ((Repeat1__numRows <> 0) AND (NOT rsSearch.EOF))
    %>
    <tr>
    <td><%=(rsSearch.Fields.Item("Model").Value)%></td>
    <td><%=(rsSearch.Fields.Item("Type").Value)%></td>
    <td><%=(rsSearch.Fields.Item("Asking_price").Value)%></td>
    </tr>
    <%
    Set mail = Server.CreateObject("CDONTS.NewMail")
    mail.From = "info@mijnsite.nl"
    mail.To = rsSearch("Email")
    mail.BodyFormat = 0
    mail.MailFormat = 0
    mail.Subject = "subject"
    mail.Body = rsSearch("Model") & rsSearch("Type")& rsSearch("Asking_price")
    mail.Send
    Set mail = Nothing
    %>
    <%
    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    rsSearch.MoveNext()
    Wend
    %>

    ——————————————————————————–
    [/code:1:5c6852ecab]



    Echter ik krijg nu net zoveel mailtjes als dat er "hits" zijn. Ieder resultaat wordt nu apart in een mailtje gezet en gemaild.

    Ik wil ecter dat alle resultaten in 1 mailtje wordt gezet en naar de juiste persoon wordt gestuurd.

    Hoe kan ik dit nu bereiken. De Loop voor het verzenden van de e-mail lijkt mij goed.

    Ligt het misschien aan de SQL ?
  • Je moet er voor zorgen dat je alle emailadressen verzamelt, en dat kan met dezelfde loop. Echter, je moet het e-mailgedeelte natuurlijk wel buiten die loop houden.

    Want stel nu eens dat je 100.000 matches hebt, dan verstuur je honderdduizend e-mails met de opzet die je nu hebt.
  • Enig idee, hoe ik mijn code zou moeten veranderen ?

    Als ik het e-mail gedeelte buiten de loop zet, dan krijg ik maar 1 mailtje met resultaat.
  • Zoiets?

    [code:1:40c9366d0a] <%
    Set mail = Server.CreateObject("CDONTS.NewMail")
    mail.From = "info@mijnsite.nl"
    mail.To = rsSearch("Email")
    mail.BodyFormat = 0
    mail.MailFormat = 0
    mail.Subject = "subject"
    mail.Body = ""

    While ((Repeat1__numRows <> 0) AND (NOT rsSearch.EOF))
    %>
    <tr>
    <td><%=(rsSearch.Fields.Item("Model").Value)%></td>
    <td><%=(rsSearch.Fields.Item("Type").Value)%></td>
    <td><%=(rsSearch.Fields.Item("Asking_price").Value)%></td>
    </tr>
    <%

    ' Je moet maar even zien of += werkt, je moet natuurlijk erbij plakken,
    ' en niet iedere loop de body content vervangen

    mail.Body += rsSearch("Model") & rsSearch("Type")& rsSearch("Asking_price") +"
    "

    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    rsSearch.MoveNext()

    Wend
    mail.Send
    Set mail = Nothing
    %> [/code:1:40c9366d0a]
  • Dan stuur je maar één mailtje, terwijl dat ook weer niet de bedoeling is…

    Oplossing: loop 1 alle mailtjes samenstellen etc en die in een 2e loop versturen.
  • Bovenstaand voorbeeld had ik ook al geprobeerd.

    Of ik krijg het voor elkaar om 1 mailtje te sturen, of tig mailtjes, met in ieder mailtje een ander resultaat van de query.

    Iemand nog tips ?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.