I have done the back-end code in the ASP,

I was wondering if there's a way to produce a text file on a server, after form has been submitted by user. I am also putting a script to put via email, but want to save it as a text file for each message sent for backup purposes. Or if some of the people want to go back and track the messages

Here is the ASP Code:
<%@ Language=VBScript %>

<%
Option Explicit
%>


<%
' -----------------------------------------------------
' CDONTS Email send script
' © http://www.designplace.org/
' Comments must remain intact for re-use of this code
' -----------------------------------------------------


dim strName, strEmailOne, strEmailTwo, strMessage, optSuggestions, strEmailTo

strName = Request.Form("name") ' holds inputted name
strEmailOne = Request.Form("emailOne") ' holds inputted email address
strEmailTwo = Request.Form("emailTwo") ' holds inputted email address
strMessage = Request.Form("message") ' holds inputted message
optSuggestions = Request.Form("suggestions").Item ' drop down list selection

' -- check all fields for empty values --
' -- remove and add new as required --

if strMessage = "" then
Response.Redirect "suggestion_box.asp?action=err4"
end if

' if strName = "" then
' Response.Redirect "suggestion_box.asp?action=err1"
' else if strEmailOne = "" then
' Response.Redirect "suggestion_box.asp?action=err2"
' else if strEmailTwo = "" then
'Response.Redirect "suggestion_box.asp?action=err3"
'else if strMessage = "" then
'Response.Redirect "suggestion_box.asp?action=err4"
'else if optSuggestions = "" then
'Response.Redirect "suggestion_box.asp?action=err5"
'end if
'end if
'end if
'end if
'end if

' -- start determine correct send to address based on suggestion type --

Select Case optSuggestions

Case "Web Enhancements"
strEmailTo = ""

Case "Application Enhancements"
strEmailTo = ";"

Case "New Product Suggestions"
strEmailTo = ";"

Case "Workplace Suggestions"
strEmailTo = ";"

Case "Employee Recognition"
strEmailTo = ";"

Case "Cultural Events"
strEmailTo = ";"

Case "Other"
strEmailTo = ";"

Case Else
strEmailTo = ";;"

End Select

' -- end determine correct send to address based on suggestion type --

' -- begin email send process --

dim objMail

Set objMail = CreateObject("CDONTS.NewMail")

' -- email variables --
objMail.To = Trim(strEmailTo)
objMail.From = Trim("")
objMail.Subject = "Suggestion box for Avanquest North America"
objMail.BodyFormat = "0" ' HTML format
objMail.Body = "Here are some suggestions, comments and concerns for Avanquest North America:" & vbCrLf _
& vbCrLf _
& "Type of Suggestions/Comments: " & Trim(optSuggestions) & vbCrLf _
& vbCrLf _
& "Message: " & Trim(strMessage)

' -- send the email --
objMail.Send

' -- clean up object
Set objMail = Nothing

' -- execute confirmation page
Response.Redirect "thankyou.asp"
%>

Dani AI

Generated

This thread already has a working send routine from and a per-message file writer from . Below are practical, production-focused notes that complement those snippets without repeating their code: where to put the files, common pitfalls, safer formats, and operational concerns.

Store files outside the webroot and resolve the physical path with Server.MapPath (or an absolute path) so you never accidentally expose backups by URL. Create a dedicated folder (for example an "app_data" or "logs" folder) and give only the IIS application identity write/modify rights — check your Application Pool Identity in IIS Manager (IIS APPPOOL\<poolname>, NETWORK SERVICE or IUSR on older installs) and use NTFS ACLs rather than broad Everyone permissions.

Pick a maintainable format. A single daily CSV (or pipe-delimited) log is easier to search than thousands of tiny text files. Record a timestamp, sender, recipient(s), suggestion type, and a sanitized message field (replace CR/LF inside the message with a safe token or encode the message) so each record stays on one line. If you need full-text search or reporting, use a database instead of flat files.

Handle concurrency, encoding and errors. Append to a log file rather than constantly creating files to reduce file-locks; for non-ASCII content write UTF-8 (ADODB.Stream is a reliable way in classic ASP). Wrap the write in error handling, and if file creation fails log the error to an alternate location (event log or a fallback file). Put the write operation after your mail send call but before the redirect so the backup runs during the same request. Finally, avoid storing unneeded personal data, and implement retention rules (rotate or purge old logs) to limit space and comply with privacy rules.

To create and write a file pertaining to the email sent, use the following code:

Dim filename, fs, f, strRnd
strRnd = FormatDateTime(Now(),2) & "_"
strRnd = Replace(strRnd, "/", "")
For intCounter = 1 To 6
  intDecimal = Int((26 * Rnd) + 1) + 96
  strRnd = strRnd & Chr(intDecimal)
Next
filename = strRnd & ".txt"
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.CreateTextFile(filename,true)
f.write(objMail.Body)
'or set objmail.body to another variable and call it here.
'if you do call this variable or set it to another variable,
'you must do it before you end the objMail but after you
'set the objMail.Body.
f.close
Set f=nothing
Set fs=nothing

This will create a text file with todays date followed by a unique key so there are no duplicates. It will write your entire email there. This is not very efficient in finding emails delt on a large basis. It will only spit out something like this in a folder: 1132007_KLJDLL.txt
Obviously you cannot tell what it is by just looking at it. Get creating, set a new name to it if you wish!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.