1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Attaching images to send as an email in ASP

Discussion in 'C#' started by kevingibbons, Jun 21, 2006.

  1. #1
    Does anyone know how to upload images to send as an email attachment using ASP?

    Thanks in advance,
    Kev
     
    kevingibbons, Jun 21, 2006 IP
  2. ludwig

    ludwig Notable Member

    Messages:
    2,253
    Likes Received:
    66
    Best Answers:
    0
    Trophy Points:
    225
    #2
    here is a scrip that attaches the file from your server

    <HTML>
    <BODY BGCOLOR="white">
    
    <H1>aspSmartMail : Sample 5</H1>
    <HR>
    <%
    
    	On error resume next
    
    	Dim mySmartMail
    	Set mySmartMail = Server.CreateObject("aspSmartMail.SmartMail")
    
    '	Mail Server
    '	***********
    	mySmartMail.Server = "mail.yourdomain.com"
    	mySmartMail.ServerPort = 25
    	mySmartMail.ServerTimeOut = 35
    
    '	From
    '	****
    	mySmartMail.SenderName = "Your Name"
    	mySmartMail.SenderAddress = "youremail@yourdomain.com"
    
    '	To
    '	**
    	mySmartMail.Recipients.Add "yourfriend0@anydomain.com", "Friend0's name"
    	mySmartMail.Recipients.Add "yourfriend1@anydomain.com", "Friend1's name"
    
    '	Carbon copy
    '	***********
    	mySmartMail.CCs.Add "yourfriend2@anydomain.com", "Friend2's name"
    
    '	Blind carbon copy
    '	*****************
    	mySmartMail.BCCs.Add "yourfriend3@anydomain.com", "Friend3's name"
    
    '	Reply To
    '	********
    	mySmartMail.ReplyTos.Add "yourfriend4@anydomain.com", "Friend4's name"
    
    '	Message
    '	*******
    	mySmartMail.Subject = "aspSmartMail Sample 5"
    	mySmartMail.Body = "This mail which has been sent with aspSmartMail."
    
    '	Parameters
    '	**********
    	mySmartMail.DateTime = "Wed, 23 febr 2000 12:00 +0600"
    	mySmartMail.Organization = "your Society Inc."
    	mySmartMail.XMailer = "Your Web Application"
    	mySmartMail.Priority = 1
    	mySmartMail.ReturnReceipt = false
    	mySmartMail.ConfirmRead = true
    	mySmartMail.ContentType = "text/plain"
    	mySmartMail.Charset = "us-ascii"
    	mySmartMail.Encoding = "base64"
    
    '	Attached file
    '	*************
    	mySmartMail.Attachments.Add Server.MapPath("\aspSmartMail\sample.txt"), false
    
    '	Send the message
    '	****************
    	mySmartMail.SendMail
    
    	if err.number <> 0 then
    
    		response.write("Error n° " &  err.number - vbobjecterror & " = " & err.description  & "<br>")
    
    	else
    
    		Response.Write "aspSmartMail has sent your message with this file as attachment : <br>"
    		Response.Write mySmartMail.Attachments.Item(1).FilePathName
    
    	end if
    
    	set mySmartMail = nothing
    
    %>
    </body>
    </html>
    Code (markup):
     
    ludwig, Jun 21, 2006 IP
  3. ludwig

    ludwig Notable Member

    Messages:
    2,253
    Likes Received:
    66
    Best Answers:
    0
    Trophy Points:
    225
    #3
    INSERT.HTM
    <html>
    <head>
    	<title>File Uploading with ASP</title>
    	<style>
    		body, input { font-family:verdana,arial; font-size:10pt; }
    	</style>
    </head>
    <body>
    	<p align="center">
    		<b>File Uploading with ASP</b><br>
    		<a href="show.asp">To see uploaded data click here</a>
    	</p>
    	
    	<table border="0" align="center">
    	<tr>
    	<form method="POST" enctype="multipart/form-data" action="Insert.asp">
    	<td>Name :</td><td>
    		<input type="text" name="name" size="40"></td></tr>
    	<td>File :</td><td>
    		<input type="file" name="file" size="40"></td></tr>
    	<td>&nbsp;</td><td>
    		<input type="submit" value="Submit"></td></tr>
    	</form>
    	</tr>
    	</table>
    
    </body>
    </html>
    
    Code (markup):
    INSERT.ASP
    <!--#include file="Loader.asp"-->
    <%
    	Response.Buffer = True
    
    	' load object
    	Dim load
    		Set load = new Loader
    		
    		' calling initialize method
    		load.initialize
    		
    	' File binary data
    	Dim fileData
    		fileData = load.getFileData("file")
    	' File name
    	Dim fileName
    		fileName = LCase(load.getFileName("file"))
    	' File path
    	Dim filePath
    		filePath = load.getFilePath("file")
    	' File path complete
    	Dim filePathComplete
    		filePathComplete = load.getFilePathComplete("file")
    	' File size
    	Dim fileSize
    		fileSize = load.getFileSize("file")
    	' File size translated
    	Dim fileSizeTranslated
    		fileSizeTranslated = load.getFileSizeTranslated("file")
    	' Content Type
    	Dim contentType
    		contentType = load.getContentType("file")
    	' No. of Form elements
    	Dim countElements
    		countElements = load.Count
    	' Value of text input field "name"
    	Dim nameInput
    		nameInput = load.getValue("name")
    	' Path where file will be uploaded
    	Dim pathToFile
    		pathToFile = Server.mapPath("uploaded/") & "\" & fileName
    	' Uploading file data
    	Dim fileUploaded
    		fileUploaded = load.saveToFile ("file", pathToFile)
    		
    	' destroying load object
    	Set load = Nothing
    %>
    
    <html>
    <head>
    	<title>File Uploading with ASP</title>
    	<style>
    		body, input, td { font-family:verdana,arial; font-size:10pt; }
    	</style>
    </head>
    <body>
    	<p align="center">
    		<b>File Uploading with ASP</b><br>
    		<a href="show.asp">To see uploaded files click here</a>
    	</p>
    	
    	<table width="700" border="1" align="center">
    	<tr>
    		<td>File Name</td><td><%= fileName %></td>
    	</tr><tr>
    		<td>File Path</td><td><%= filePath %></td>
    	</tr><tr>
    		<td>File Path Complete</td><td><%= filePathComplete %></td>
    	</tr><tr>
    		<td>File Size</td><td><%= fileSize %></td>
    	</tr><tr>
    		<td>File Size Translated</td><td><%= fileSizeTranslated %></td>
    	</tr><tr>
    		<td>Content Type</td><td><%= contentType %></td>
    	</tr><tr>
    		<td>No. of Form Elements</td><td><%= countElements %></td>
    	</tr><tr>
    		<td>Name</td><td><%= nameInput %></td>
    	</tr>
    	</table><br><br>
    	
    	<p style="padding-left:220;">
    	<%
    		If fileUploaded = True Then
    			Response.Write fileName & " data uploaded..."
    			Else
    			Response.Write "<font color=""red"">File could not be uploaded...</font>"
    			Response.Write "<br>Please select a file before hitting the 'Submit' button."
    		End If
    	%>
    	</p>
    	
    	<br>
    	<table border="0" align="center">
    	<tr>
    	<form method="POST" enctype="multipart/form-data" action="Insert.asp">
    	<td>Name :</td><td>
    		<input type="text" name="name" size="40" value="<%= nameInput %>"></td></tr>
    	<td>File :</td><td>
    		<input type="file" name="file" size="40"></td></tr>
    	<td>&nbsp;</td><td>
    		<input type="submit" value="Submit"></td></tr>
    	</form>
    	</tr>
    	</table>
    
    </body>
    </html>
    
    Code (markup):
    LOADER.ASP
    <%
    	' -- Loader.asp --
    	' -- version 1.5.2
    	' -- last updated 12/5/2002
    	'
    	' Faisal Khan
    	' faisal@stardeveloper.com
    	' www.stardeveloper.com
    	' Class for handling binary uploads
    	
    	Class Loader
    		Private dict
    		
    		Private Sub Class_Initialize
    			Set dict = Server.CreateObject("Scripting.Dictionary")
    		End Sub
    		
    		Private Sub Class_Terminate
    			If IsObject(intDict) Then
    				intDict.RemoveAll
    				Set intDict = Nothing
    			End If
    			If IsObject(dict) Then
    				dict.RemoveAll
    				Set dict = Nothing
    			End If
    		End Sub
    
    		Public Property Get Count
    			Count = dict.Count
    		End Property
    
    		Public Sub Initialize
    			If Request.TotalBytes > 0 Then
    				Dim binData
    					binData = Request.BinaryRead(Request.TotalBytes)
    					getData binData
    			End If
    		End Sub
    		
    		Public Function getFileData(name)
    			If dict.Exists(name) Then
    				getFileData = dict(name).Item("Value")
    				Else
    				getFileData = ""
    			End If
    		End Function
    
    		Public Function getValue(name)
    			Dim gv
    			If dict.Exists(name) Then
    				gv = CStr(dict(name).Item("Value"))
    				
    				gv = Left(gv,Len(gv)-2)
    				getValue = gv
    			Else
    				getValue = ""
    			End If
    		End Function
    		
    		Public Function saveToFile(name, path)
    			If dict.Exists(name) Then
    				Dim temp
    					temp = dict(name).Item("Value")
    				Dim fso
    					Set fso = Server.CreateObject("Scripting.FileSystemObject")
    				Dim file
    					Set file = fso.CreateTextFile(path)
    						For tPoint = 1 to LenB(temp)
    						    file.Write Chr(AscB(MidB(temp,tPoint,1)))
    						Next
    						file.Close
    					saveToFile = True
    			Else
    					saveToFile = False
    			End If
    		End Function
    		
    		Public Function getFileName(name)
    			If dict.Exists(name) Then
    				Dim temp, tempPos
    					temp = dict(name).Item("FileName")
    					tempPos = 1 + InStrRev(temp, "\")
    					getFileName = Mid(temp, tempPos)
    			Else
    				getFileName = ""
    			End If
    		End Function
    		
    		Public Function getFilePath(name)
    			If dict.Exists(name) Then
    				Dim temp, tempPos
    					temp = dict(name).Item("FileName")
    					tempPos = InStrRev(temp, "\")
    					getFilePath = Mid(temp, 1, tempPos)
    			Else
    				getFilePath = ""
    			End If
    		End Function
    		
    		Public Function getFilePathComplete(name)
    			If dict.Exists(name) Then
    				getFilePathComplete = dict(name).Item("FileName")
    			Else
    				getFilePathComplete = ""
    			End If
    		End Function
    
    		Public Function getFileSize(name)
    			If dict.Exists(name) Then
    				getFileSize = LenB(dict(name).Item("Value"))
    			Else
    				getFileSize = 0
    			End If
    		End Function
    
    		Public Function getFileSizeTranslated(name)
    			If dict.Exists(name) Then
    				temp = 1 + LenB(dict(name).Item("Value"))
    					If Len(temp) <= 3 Then
    						getFileSizeTranslated = temp & " bytes"
    					ElseIf Len(temp) > 6 Then
    						temp = FormatNumber(((temp / 1024) / 1024), 2)
    						getFileSizeTranslated = temp & " megabytes"	
    					Else
    						temp = FormatNumber((temp / 1024), 2)
    						getFileSizeTranslated = temp & " kilobytes"
    					End If
    			Else
    				getFileSizeTranslated = ""
    			End If
    		End Function
    		
    		Public Function getContentType(name)
    			If dict.Exists(name) Then
    				getContentType = dict(name).Item("ContentType")
    			Else
    				getContentType = ""
    			End If
    		End Function
    
    	Private Sub getData(rawData)
    		Dim separator 
    			separator = MidB(rawData, 1, InstrB(1, rawData, ChrB(13)) - 1)
    
    		Dim lenSeparator
    			lenSeparator = LenB(separator)
    
    		Dim currentPos
    			currentPos = 1
    		Dim inStrByte
    			inStrByte = 1
    		Dim value, mValue
    		Dim tempValue
    			tempValue = ""
    
    		While inStrByte > 0
    			inStrByte = InStrB(currentPos, rawData, separator)
    			mValue = inStrByte - currentPos
    
    			If mValue > 1 Then
    				value = MidB(rawData, currentPos, mValue)
    
    				Dim begPos, endPos, midValue, nValue
    				Dim intDict
    					Set intDict = Server.CreateObject("Scripting.Dictionary")
    		
    					begPos = 1 + InStrB(1, value, ChrB(34))
    					endPos = InStrB(begPos + 1, value, ChrB(34))
    					nValue = endPos
    
    				Dim nameN
    					nameN = MidB(value, begPos, endPos - begPos)
    
    				Dim nameValue, isValid
    					isValid = True
    					
    					If InStrB(1, value, stringToByte("Content-Type")) > 1 Then
    
    						begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
    						endPos = InStrB(begPos + 1, value, ChrB(34))
    	
    						If endPos = 0 Then
    							endPos = begPos + 1
    							isValid = False
    						End If
    						
    						midValue = MidB(value, begPos, endPos - begPos)
    							intDict.Add "FileName", trim(byteToString(midValue))
    								
    						begPos = 14 + InStrB(endPos + 1, value, stringToByte("Content-Type:"))
    						endPos = InStrB(begPos, value, ChrB(13))
    						
    						midValue = MidB(value, begPos, endPos - begPos)
    							intDict.Add "ContentType", trim(byteToString(midValue))
    						
    						begPos = endPos + 4
    						endPos = LenB(value)
    
    						nameValue = MidB(value, begPos, ((endPos - begPos) - 1))
    					Else
    						nameValue = trim(byteToString(MidB(value, nValue + 5)))
    					End If
    
    					If isValid = True Then
    
    						intDict.Add "Value", nameValue
    						intDict.Add "Name", nameN
    
    						dict.Add byteToString(nameN), intDict
    					End If
    			End If
    
    			currentPos = lenSeparator + inStrByte
    		Wend
    	End Sub
    	
    	End Class
    
    	Private Function stringToByte(toConv)
    		Dim tempChar
    		 For i = 1 to Len(toConv)
    		 	tempChar = Mid(toConv, i, 1)
    			stringToByte = stringToByte & chrB(AscB(tempChar))
    		 Next
    	End Function
    
    	Private Function byteToString(toConv)
    		For i = 1 to LenB(toConv)
    			byteToString = byteToString & chr(AscB(MidB(toConv,i,1))) 
    		Next
    	End Function
    %>
    
    Code (markup):
    SHOW.ASP
    <%
    	' -- show.asp --
    	' Shows a list of uploaded files
    	
    	Response.Buffer = True
    %>
    <html>
    <head>
    	<title>List of uploaded Files</title>
    	<style>
    		body, input, td { font-family:verdana,arial; font-size:10pt; }
    	</style>
    </head>
    <body>
    	<p align="center">
    		<b>List of uploaded Files</b><br>
    		<a href="insert.htm">To upload files click here</a>
    	</p>
    
    <%
    	' File System Object
    	Dim fso
    		Set fso = Server.CreateObject("Scripting.FileSystemObject")
    		
    	' "Uploaded" Folder
    	Dim folder
    		Set folder = fso.GetFolder(Server.MapPath("uploaded/"))
    		
    	If folder.Size > 0 Then
    		Response.Write "<ul>"
    		For Each file In folder.Files
    				Response.Write "<li type=""circle"">"
    				Response.Write "<a href=""uploaded/" & file.Name & """>"
    				Response.Write "<b>" & file.Name & "</b></a>&nbsp; &nbsp;"
    				Response.Write "( Size: " & file.Size & " )&nbsp; &nbsp;"
    		Next
    		Response.Write "</ul>"
    	Else
    		Response.Write "<ul><li type=""circle"">No Files Uploaded.</ul>"
    	End If
    %>
    </body>
    </html>
    Code (markup):
    YOU WILL NEED TO CREATE A FOLDER NAMED "UPLOADED" in the folder where you place this files

    NOTE: THIS SCRIPTS DO NOT BELONG TO ME, THEY ARE THE SOLE IDENTITY OF THE PRODUCERS. HOPE THEY WILL BE USEFUL FOR YOU TO GET YOUR WORK DONE

    I know there should be some other ways but I am not sure which are they....
    I had the screepts saved somewhere but can't find them now.

    GOOD LUCK
     
    ludwig, Jun 21, 2006 IP
  4. kevingibbons

    kevingibbons Guest

    Messages:
    224
    Likes Received:
    8
    Best Answers:
    0
    Trophy Points:
    0
    #4
    That's great thanks a lot :D
     
    kevingibbons, Jun 22, 2006 IP
  5. nissan

    nissan Member

    Messages:
    81
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    41
    #5
    I think you can use file upload control for uploading files/images from client pc to server.
    But i am not sure about tracking the file path.
     
    nissan, Mar 2, 2010 IP