Foros del Web » Programando para Internet » ASP Clásico »

enviar correo con adjunto seleccionable

Estas en el tema de enviar correo con adjunto seleccionable en el foro de ASP Clásico en Foros del Web. Hola a todos. Queria comentaros un caso que tengo y el cual estoy buscando información pero solo he podido encontrarlo bajo ASP.NET y lo necesitaria ...
  #1 (permalink)  
Antiguo 02/04/2009, 10:24
 
Fecha de Ingreso: abril-2009
Mensajes: 11
Antigüedad: 16 años, 1 mes
Puntos: 0
enviar correo con adjunto seleccionable

Hola a todos. Queria comentaros un caso que tengo y el cual estoy buscando información pero solo he podido encontrarlo bajo ASP.NET y lo necesitaria en ASP.

Resulta que necesito enviar correo desde una pagina asp pero seleccionando un adjunto desde el formulario. Es decir que desde el formulario desde el que mando el correo me de la opción a seleccionar un archivo para adjuntarlo a este.

Alguien podria mandarme código como ejemplo?.

Muchas gracias.

Un saludo.
  #2 (permalink)  
Antiguo 02/04/2009, 12:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: enviar correo con adjunto seleccionable

Qué objeto de correo vas a usar?
  #3 (permalink)  
Antiguo 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>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.