
02/04/2009, 12:52
|
| | Fecha de Ingreso: abril-2009
Mensajes: 11
Antigüedad: 16 años, 1 mes Puntos: 0 | |
Respuesta: enviar correo con adjunto seleccionable Hola gracias por tu respuesta. En principio me da igual el objeto siempre y cuando sea gratuito. CDONTS o CDONTSYS.
He estado buscando y he encontrado este ejemplo... pero solo me manda correo si no adjunto un archivo. Si lo adjunto me da error 500. Os lo dejo por si os sirve de orientación.
Código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.Buffer = true
Function BuildUpload(RequestBin)
'Get the boundary
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
'Get all data inside the boundaries
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
'Members variable of objects are put in a dictionary object
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
'Test if object is of file type
If PosFile<>0 AND (PosFile<PosBound) Then
'Get Filename, content-type and content of file
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
'Add filename to dictionary object
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
'Add content-type to dictionary object
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
'Get content of object
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
'Get content of object
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Function
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
If request("Action")="1" then
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUpload(RequestBin)
If UploadRequest.Item("blob").Item("Value") <> "" Then
contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
FolderName = UploadRequest.Item("where").Item("Value")
Response.Write "FolderName: " & FolderName & "<BR>"
Path = Mid(Request.ServerVariables("PATH_TRANSLATED"), 1, Len(Request.ServerVariables("PATH_TRANSLATED")) - Len(Request.ServerVariables("PATH_INFO"))) & "\"
Response.Write "Path:" & Path & "<BR>"
ToFolder = Path & "\" & FolderName
value = UploadRequest.Item("blob").Item("Value")
filename = ToFolder & "\" & filename
Set MyFileObject = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = MyFileObject.CreateTextFile(filename)
'Response.Write "Saved Path: " & filename
For i = 1 to LenB(value)
objFile.Write chr(AscB(MidB(value,i,1)))
Next
objFile.Close
Set objFile = Nothing
Set MyFileObject = Nothing
End If
' ge the other form elements now
MySubject = UploadRequest.Item("MySubject").Item("Value")
MyTo = UploadRequest.Item("MyTo").Item("Value")
MyText = UploadRequest.Item("MyText").Item("Value")
MyFrom = UploadRequest.Item("MyFrom").Item("Value")
Set UploadRequest = Nothing
Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
ObjCDOMail.From = MyFrom
ObjCDOMail.To = MyTo
ObjCDOMail.BodyFormat = 0
ObjCDOmail.Mailformat = 0
ObjCDOMail.Subject = MySubject
ObjCDOMail.Body = MyText
'heres an if statement to chk for an attachment
' I am sure theres another way but this does the job fine
If Len(filename) > 5 then
objCDOMail.AttachFile filename,nikfile
end if
ObjCDOMail.Send
Set ObjCDOMail = Nothing
Response.Write "your mail has been sent"
End If%>
<html>
<head>
<title>Anon Mail</title>
<!--
' This is coded by [email protected]
'using the upload.asp example from asp101.com
' and combining it with the mail object to allow
' you upload a pic from your pc and email to anyone anywhere
' at anytime maybe it should be called martini mail
-->
<style>
.text { font-family: Verdana,Arial;
color: black;
Font-size: 10pt
}
</style>
</head>
<body><form METHOD="POST" ENCTYPE="multipart/form-data" action="mailattachment.asp?Action=1" name="mailform" id="mailform">
<table border="0" align="center" width="350">
<tr>
<td class="text" colspan="2">
<h3>Send an Email to anyone with an attachment</h3>
</td>
</tr>
<tr>
<tr>
<td class="text" align="left">From</td>
<td class="text" align="right"><input class="text" type=text name=MyFrom size="30"></td>
</tr>
<tr>
<td class="text" align="left">To:</td>
<td align="right"><input class="text" name="MyTo" size="30"></td>
</tr>
<tr>
<td class="text" align="left">Subject:</td>
<td align="right"><input class="text" type=text name="MySubject" size="30"></td>
</tr>
<tr>
<td class="text" colspan="2">Enter your email text below</td>
</tr>
<tr>
<td class="text" colspan="2" align="right"><textarea class="text" rows="7" name="MyText" cols="65"></textarea></td>
</tr>
<tr>
<td colspan="2" class="text" align="center">
Attach a file: <input TYPE="file" NAME="blob">
<input TYPE="HIDDEN" NAME="where" value="images">
<!-- change the value of this hidden field to change the directory of where uploads are stored-->
</td>
</tr>
<tr>
<td colspan="2" class="text">
<input class="text" type="submit" Value="Send it!" id="submit1" name="submit1"></td>
</tr>
<tr>
</tr>
</table>
</form>
</body>
</html>
|