sabrina.vallenari

Spedire Fax Via Asp

3 messaggi in questa discussione

Ciao a tutti,

sto lavorando sull'invio di un fax da una pagina asp utilizzando il servizio fax di win 2003 server e ci sono riuscita.

<%@ Page Language = "VB" Debug="True" aspcompat="true" %>
<%@ Import Namespace = "System.IO" %>
<script language="VB" runat="server">


Sub invia(ByVal numero, ByVal file, ByVal rascl, ByVal utente)
	Dim FaxServer As Object
	Dim FaxDoc As Object

	FaxServer = Server.CreateObject("Faxserver.FaxServer")
	FaxServer.Connect("server-05")
	FaxDoc = FaxServer.CreateDocument(file)
	Dim FAXCL = ""
	Dim i
	For i = 1 To Len(numero)
		If Asc(Mid(numero, i, 1)) >= 48 And Asc(Mid(numero, i, 1)) <= 57 Then
			FAXCL = FAXCL & Mid(numero, i, 1)
		End If
	Next

	FaxDoc.FaxNumber = FAXCL '"0" & 
	FaxDoc.RecipientName = Right(rascl, 6) & "#" & file & "#" & utente

	'Response.Write("In attesa di spedizione a " & FAXCL & "...")

	Dim JobID
	On Error Resume Next
	JobID = FaxDoc.Send()

	If Err.Number <> 0 Then
		Response.Write("Impossibile inviare il fax (" & Err.Description & ")")
	Else
		Response.Write("Fax inviato con successo - JobID = " & JobID)
		Response.Write(" Cliente: " & Right(rascl, 6) & " Fax: " & FAXCL)
	End If

	FaxDoc = Nothing
	FaxServer.Disconnect()
	FaxServer = Nothing
End Sub


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

		Dim numero
		Dim file
		Dim rascl
		Dim utente
		numero = Request.QueryString("numeroFax")
		file = Request.QueryString("file")
		rascl = Request.QueryString("rascl")
		utente = Request.QueryString("utente")
		If numero = "" Or file = "" Or rascl = "" Or utente = "" Then
			Response.Write("Dati mancanti")
		Else
			Call invia(numero, file, rascl, utente)
		End If
End Sub
</script>

In pratica mando un fax al numero che l'utente mi indica e do un pdf in pasto al fax di windows che lo trasforma in tif e poi lo manda via modem.

Facendo questa operazione però mi rimane aperto il processo acroRd32.exe (che è acrobat reader) e ogni fax che mando mi genera un processo nuovo, quindi nel task manager del server vedo un sacco di processi acroRd32 aperti e raggiunto un certo numero va in errore acrobat reader!.

Come potrei fare dalla pagina (nel mio caso aspx) a far chiudere il processo acroRd32 una volta finito di mandare il fax?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Inviato (modificato)

Ciao! Mi rispondo da sola...

Questo è il codice della mia pagina che invia il fax e poi uccide acrobat reader:


Sub invia(ByVal numero, ByVal file, ByVal rascl, ByVal utente)
	Dim FaxServer As Object
	Dim FaxDoc As Object

	FaxServer = Server.CreateObject("Faxserver.FaxServer")
	FaxServer.Connect("server-05")
	FaxDoc = FaxServer.CreateDocument(file)
	Dim FAXCL = ""
	Dim i
	'pulisco il numero di fax da caratteri non numerici
	For i = 1 To Len(numero)
		If Asc(Mid(numero, i, 1)) >= 48 And Asc(Mid(numero, i, 1)) <= 57 Then
			FAXCL = FAXCL & Mid(numero, i, 1)
		End If
	Next

	'aggiungo 0 davanti al numero per uscire dal mio centralino
	FaxDoc.FaxNumber = "0" & FAXCL
	'in recipient name ci metto delle informazioni che mi servono
	FaxDoc.RecipientName = Right(rascl, 6) & "#" & file & "#" & utente

	Dim JobID
	On Error Resume Next
	JobID = FaxDoc.Send()

	If Err.Number <> 0 Then
		Response.Write("Impossibile inviare il fax (" & Err.Description & ")")
	Else
		Response.Write("Fax inviato con successo - JobID = " & JobID)
		Response.Write(" Cliente: " & Right(rascl, 6) & " Fax: " & FAXCL)
	End If

	FaxDoc = Nothing
	FaxServer.Disconnect()
	FaxServer = Nothing
End Sub


'chiamo la funzione di invio fax
Call invia(numero, file, rascl, utente)

'uccido acrobat
Dim proc As System.Diagnostics.Process
Dim pList() As System.Diagnostics.Process
pList = System.Diagnostics.Process.GetProcessesByName("AcroRd32")
For Each proc In pList
  proc.Kill()
Next

Ciao a tutti, kiss :)

Modificato da sabrina v

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora