2013-07-31 2 views
0

Я новичок в VbScript. Я должен сделать форму для загрузки файла и отправки в указанное электронное письмо в виде вложения. Для загрузки я использовал этот скрипт http://www.freeaspupload.net/freeaspupload/viewsource.asp Теперь мое приложение сохраняет файл на сервер. Вторая часть выглядит следующим образом:Как добавить скрипт отправки электронной почты

<% OPTION EXPLICIT 

If Request.Cookies("QuoteRequest") = "Quote" THEN 
    Dim fileName 
    Dim strMsg 
    Dim mail 
    Dim strSubject 
    Dim strFrom 
    Dim strReply 
    Dim strChoice 
    Dim AddCheck 
    Dim MyCheckDate 
    Dim strMailBlindCopy 

    Dim smtpserver 
    Dim youremail 
    Dim public_mailer 
    Dim public_password 

    smtpserver = "" 
    youremail = "" 
    public_mailer = "" 
    public_password = "" 

    AddCheck = Request.Form("Str_xxrand234Myanswer") 
    'Use this next line if you want a blind copy send for your records 
    'strMailBlindCopy = "[email protected]" 


    'IF AddCheck = "" or NULL THEN 
    IF len(AddCheck)>2 OR len(AddCheck)<1 OR IsNumeric(AddCheck)=FALSE THEN 

     response.write "<a href=""javascript:history.back()""><h2>Sorry an error has occurred, please click here to return to the form</h2></a>" & AddCheck 


    Else 

     Dim ObjSendMail 
     Set ObjSendMail = CreateObject("CDO.Message") 

     'This section provides the configuration information for the remote SMTP server. 

     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Send the message using the network (SMTP over the network). 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False 'Use SSL for the connection (True or False) 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 

     ' If your server requires outgoing authentication uncomment the lines bleow and use a valid email address and password. 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'basic (clear-text) authentication 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = public_mailer 
     ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = public_password 

     ObjSendMail.Configuration.Fields.Update 

     strFrom    = "Quote Request Form" 
     strReply   = Request.Form("txtemail") 

     strSubject = "Quote Request Form" 


     strMsg = strMsg & "<b>Your Name:</b> " & Request.Form("txtname") & vbCrLF & vbCrLF & "<BR>" & "<BR>"  
     strMsg = strMsg & "<b>Your Company Name:</b> " & Request.Form("txtcompany") & vbCrLF & vbCrLF & "<BR>" & "<BR>" 
     strMsg = strMsg & "<b>Your Order Number:</b> " & Request.Form("txtyourorder") & vbCrLF & vbCrLF & "<BR>" & "<BR>" 
     strMsg = strMsg & "<b>Our Order Number:</b> " & Request.Form("txtourorder") & vbCrLF & vbCrLF & "<BR>" & "<BR>"  
     strMsg = strMsg & "<b>Destination Postal Code:</b> " & Request.Form("txtpostal") & vbCrLF & vbCrLF & "<BR>" & "<BR>"    
     strMsg = strMsg & "<b>Order Date:</b> " & Request.Form("txtdate") & vbCrLF & vbCrLF & "<BR>"   & "<BR>"     
     strMsg = strMsg & "<b>Your E-mail Address:</b> " & Request.Form("txtemail") & vbCrLF & vbCrLF & "<BR>" & "<BR>" 
     strMsg = strMsg & "<b>Telephone #:</b> " & Request.Form("txtphone") & vbCrLF & vbCrLF & "<BR>" & "<BR>" 
     strMsg = strMsg & "<b>Comments:</b> " & Request.Form("txtcomments") & vbCrLF & vbCrLF & "<BR>" & "<BR>" 
     strMsg = strMsg & "<b>Market Served:</b> " & Request.Form("option1") & ", " & Request.Form("option2") & ", " & Request.Form("option3") & ", " & Request.Form("option4") & ", " & Request.Form("option5") & ", " & Request.Form("option6") & ", " & Request.Form("option7") & ", " & Request.Form("option8") & ", " & Request.Form("option9") & ", " & Request.Form("option10") & ", " & Request.Form("option11") & ", " & Request.Form("option12") & ", " & Request.Form("option13") & ", " & Request.Form("option14") & vbCrLF & vbCrLF & "<BR>" & "<BR>" 
     strMsg = strMsg & "<b>Topic of Interest:</b> " & Request.Form("option15") & ", " & Request.Form("option16") & ", " & Request.Form("option17") & ", " & Request.Form("option18") & ", " & Request.Form("option19") & ", " & Request.Form("option20") & ", " & Request.Form("option21") & ", " & Request.Form("option22") & ", " & Request.Form("option23") & ", " & Request.Form("option24") & ", " & Request.Form("option25") & ", " & Request.Form("option26") & ", " & Request.Form("option27") & ", " & Request.Form("option28") & ", " & Request.Form("option29") & ", " & Request.Form("option30") & ", " & Request.Form("option31") & ", " & Request.Form("option32") & vbCrLF & vbCrLF 

     fileName = Request.Form("file") 


     Dim strMailTo 

     strMailTo ="" 
     ObjSendMail.To = strMailTo 
     ObjSendMail.Subject = strSubject 
     ObjSendMail.From = strReply 
     ObjSendMail.HTMLBody = strMsg 
     If Len(fileName)Then 
      ObjSendMail.AddAttachment "C:\attachments\" & fileName 
     End If 
     ObjSendMail.Send 
     Set ObjSendMail = Nothing 




     Response.Redirect("thank-you.asp") 
    END IF 
ELSE 
    Dim txtname 
    Response.Write "ERROR <P>" 
    fname=Request.Cookies("QuoteRequest") 
    response.write("QuoteRequest=" & txtname) 

END IF 

%> 

Эти два сценария хорошо работают независимо друг от друга, но когда я пытаюсь включить электронную почту отправить часть для загрузки появляется ошибка Cannot use Request.Form collection after calling BinaryRead. Как мне позвонить отправителю электронной почты?

ответ

1

Из-за специального атрибута ENCTYPE = "multipart/form-data" вашей формы вы не можете использовать коллекцию Reqest.Form. Вместо этого используйте Upload.Form, но только после вызова Upload.Save (SaveVirtual, SaveToMemory).

+0

спасибо, очень много –

Смежные вопросы