Avatar billede tn50035 Nybegynder
02. februar 2005 - 08:50 Der er 2 kommentarer

Formail via CDONTS

Hej.

Jeg har et sprøgsmål vedr. indsætte felter i nedenstående cdonts felt... Jeg er nybegynder og har aldrig brugt cdonts før.

Jeg bruger b-one's standard script.

<%
Set objMail = Server.CreateObject( "CDONTS.NewMail" )
objMail.To = "modtager@domæne.dk"
objMail.From = "afsender@ditdomænehosbone.dk"
objMail.Subject = "Testemail med Chili!Mail"
objMail.Body = "Hej Modtager" & vbcrlf & vbcrlf & "Email fra min hjemmeside"
objMail.Host = "smtp1.b-one.nu"
objMail.Send
Set objMail = Nothing
%>

Jeg ønsker at man skal kunne udfylde noget felter i formailen.

fx. navn på afsenderen.
<input name="name" type="text">

Jeg går ud fra de felter skal indsættes i "objMail.Body" eller hvordan?
Avatar billede musti776 Nybegynder
02. februar 2005 - 10:50 #1
Nu har jeg fundet en formmail script med cdonts, prøv at rette den til efter behov og se om det ikke skulle virke...

<%
Dim strTo, strSubject, strBody 'Strings for recipient, subject, boby
Dim objCDOMail 'The CDO object


'First we'll read in the values entered
strTo = Request.Form("to")

'These would read the message subject and body if we let you enter it
'strSubject = Request.Form("subject")
'strBody = Request.Form("body")

' Both of these should be changed before you run this script.
strSubject = "Sample E-mail sent from ASP 101!"

' This is multi-lined simply for readability
strBody = "This message was sent from a sample at http://www.asp101.com.  "
strBody = strBody & "It is used to show people how to send e-mail from an "
strBody = strBody & "Active Server Page.  If you did not request this "
strBody = strBody & "e-mail yourself, your address was entered by one of "
strBody = strBody & "our visitors.  We do not store these e-mail addresses."
strBody = strBody & "  Please address all concerns to webmaster@asp101.com."

' Some spacing:
strBody = strBody & vbCrLf & vbCrLf

strBody = strBody & "This was sent to: "

' A lot of people have asked how to use form data in the emails so
' I added this line to the sample as an example of incorporating form
' data in the body of the email.
strBody = strBody & Request.Form("to")

' A final carriage return for good measure!
strBody = strBody & vbCrLf


'Ok we've got the values now on to the point of the script.

'We just check to see if someone has entered anything into the to field.
'If it's equal to nothing we show the form, otherwise we send the message.
'If you were doing this for real you might want to check other fields too
'and do a little entry validation like checking for valid syntax etc.

' Note: I was getting so many bad addresses being entered and bounced
' back to me by mailservers that I've added a quick validation routine.
If strTo = "" Or Not IsValidEmail(strTo) Then
    %>
    <FORM ACTION="./email.asp" METHOD="post">
        Enter your e-mail address:<BR>
        <INPUT TYPE="text" NAME="to" SIZE="30"></INPUT>

        <!--  These would be used if we decided to let you edit them
        Subject:&nbsp;
        <INPUT TYPE="text" NAME="subject" SIZE="30"></INPUT><BR>
       
        Message:&nbsp;
        <TEXTAREA NAME="body" ROWS="10" COLS="40" WRAP="virtual"></TEXTAREA><BR>
        -->

        <INPUT TYPE="submit" VALUE="Send Mail!"></INPUT>
    </FORM>
    <%
Else
    ' Create an instance of the NewMail object.
    Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
   
    ' Set the properties of the object
   
    '***********************************************************
    ' PLEASE CHANGE THESE SO WE DON'T APPEAR TO BE SENDING YOUR
    ' EMAIL. WE ALSO DON'T WANT THE EMAILS TO GET SENT TO US
    ' WHEN SOMETHING GOES WRONG WITH YOUR SCRIPT... THANKS
    '***********************************************************
   
    ' This syntax works fine
    'objCDOMail.From = "user@domain.com"
    ' But this gets you the appearance of a real name!
    objCDOMail.From    = "User Name <user@domain.com>"
    objCDOMail.To      = strTo
    objCDOMail.Subject = strSubject
    objCDOMail.Body    = strBody

    ' There are lots of other properties you can use.
    ' You can send HTML e-mail, attachments, etc...
    ' You can also modify most aspects of the message
    ' like importance, custom headers, ...
    ' Check the documentation for a full list as well
    ' as the correct syntax.

    ' Some of the more useful ones I've included samples of here:
    'objCDOMail.Cc        = "user@domain.com;user@domain.com"
    'objCDOMail.Bcc        = "user@domain.com;user@domain.com"
    'objCDOMail.Importance = 1 '(0=Low, 1=Normal, 2=High)
    'objCDOMail.AttachFile "c:\path\filename.txt", "filename.txt"

    ' I've had several requests for how to send HTML email.
    ' To do so simply set the body format to HTML and then
    ' compose your body using standard HTML tags.
    'objCDOMail.BodyFormat = 0 ' CdoBodyFormatHTML
   
    'Outlook gives you grief unless you also set:
    'objCDOMail.MailFormat = 0 ' CdoMailFormatMime

    ' THIS LINE SHOULD BE UNCOMMENTED TO ACTUALLY SEND THE
    ' MESSAGE.  PLEASE BE SURE YOU HAVE APPROPRIATE VALUES
    ' FOR TO AND FROM ADDRESSES AND HAVE CHANGED THE MESSAGE
    ' SUBJECT AND BODY BEFORE UNCOMMENTING THIS.
    ' Send the message!
    'objCDOMail.Send
   
    ' Set the object to nothing because it immediately becomes
    ' invalid after calling the Send method.
    Set objCDOMail = Nothing

    'Response.Write "Message sent to " & strTo & "!"
    Response.Write "Message ARE NO LONGER BEING SENT because of all the abuse the system was receiving!"
End If
' End page logic
%>

<% ' Only functions and subs follow!

' A quick email syntax checker.  It's not perfect,
' but it's quick and easy and will catch most of
' the bad addresses than people type in.
Function IsValidEmail(strEmail)
    Dim bIsValid
    bIsValid = True
   
    If Len(strEmail) < 5 Then
        bIsValid = False
    Else
        If Instr(1, strEmail, " ") <> 0 Then
            bIsValid = False
        Else
            If InStr(1, strEmail, "@", 1) < 2 Then
                bIsValid = False
            Else
                If InStrRev(strEmail, ".") < InStr(1, strEmail, "@", 1) + 2 Then
                    bIsValid = False
                End If
            End If
        End If
    End If

    IsValidEmail = bIsValid
End Function
%>
Avatar billede tn50035 Nybegynder
02. februar 2005 - 22:44 #2
okay, har forsøgt mig lidt med scriptet - det er lidt for avanceret, men har nogle smarte funktioner... kunne det evt gøres lidt mere enkelt at redigere?
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