Ett problem kan ju vara att en querystring inte kan vara hur lång som helst, max 255 tecken eller nått (kommer inte ihåg riktigt)...
Ännu en gång vänder jag mig till Eliternas elit, då detta är ett så kallat "riks-knas scenario" som jag inte kan knäcka...
Ett system där man matar in kvalitetsavvikelser vill ha en funktion så att de kan skicka ett vanligt e-mail med Ms Outlook till berörda parter - som ska fixa till det som gått snett...
Detta har jag försöka att lösa genom att
<input name="submit" type="button" id="submit" value="Skicka e-postmeddelande till berörd part" onClick = "popup('mailMsg2.asp?caseID=<%=intShowCase%>',200,80);">
Ovanstående kod resulterar i att en Popup kommer upp och man klickar på en länk... Mailet öppnas (ibland) i Ms Outlook. Ibland funkar det fint och ibland funkar det inte alls så fint - text klipps av, saknas eller ett MsOutlook felmeddelande som jag inte kommer ihåg hur det lyder.
mailMsg2.asp
---------------------------------
<!--#include file="func_functions_inc.asp" -->
<!--#include file="db_con_inc.asp" -->
<%
' Hämta info till mailet
intCaseID = Request.QueryString("caseID")
' Mera info
strSQL = "SELECT c.caseInitiated, c.longDescription, c.proposal, s.stationName " & _
"FROM tblCases AS c, tblSubProcess AS sp, tblProcess AS p, tblStation AS s " & _
"WHERE c.caseID = " & intCaseID & _
" AND c.subProcess = sp.subProcessID " & _
"AND sp.processID = p.processID " & _
"AND p.stationID = s.stationID"
Call openCon()
Set objRS = objCon.Execute(strSQL)
If NOT objRS.EOF Then
dtmInit = objRS("caseInitiated")
strDescription = objRS("longDescription")
strProposal = objRS("proposal")
dtmProposal = objRS("proposal")
strStation = objRS("stationName")
End If
Set objRS = Nothing
' Hämtar lite datum
strSQL = "SELECT * FROM tblAlarms WHERE caseID = " & intCaseID & _
" AND alarmType = 'proposal'"
Set objRS = objCon.Execute(strSQL)
If NOT objRS.EOF Then
dtmProposal = objRS("alarmDate")
End If
Set objRS = Nothing
' Mera datum
strSQL = "SELECT * FROM tblAlarms WHERE caseID = " & intCaseID & _
" AND alarmType = 'bekräfta'"
Set objRS = objCon.Execute(strSQL)
If NOT objRS.EOF Then
dtmConfirm = objRS("alarmDate")
Else
dtmConfirm = "Berörd part har bekräftat!"
End If
Set objRS = Nothing
'*** Lista kontaktpersoner
strSQL = "SELECT s.name, s.email FROM tblSystemUsers AS s, tblCaseUser AS cu " & \_
"WHERE cu.caseID = " & intCaseID & \_
" AND cu.uid = s.uid"
Call openCon()
Set objRS = objCon.Execute(strSQL)
Do Until objRS.EOF
strKontakt = strKontakt & objRS("name") & " (" & objRS("email") & ")"
objRS.MoveNext
If NOT objRS.EOF Then strKontakt = strKontakt & ", "
Loop
closeCon()
Set objRS = Nothing
strSQL = "SELECT name FROM tblSystemUsers " & \_
"WHERE uid = '" & Session("uid") & "'"
Call openCon()
Set objRS = objCon.Execute(strSQL)
Call closeCon()
Set objRS = Nothing
Set objMess = nothing
%>
<!-- HÄR BÖRJAS GENERERINGEN AV MAILET !!! -->
<a enctype="text/plain" href="mailto:
<%
' *** Här nedan listar vi upp alla e-postmottagare som är berörda av aktuellt ärende
strSQL = "SELECT cp.email FROM tblConcernedPart AS cp, tblConCases AS cc " & \_
"WHERE cc.conID = cp.conID AND cc.caseID = " & intCaseID
Call openCon()
Set objPartEmail = objCon.Execute(strSQL)
Do Until objPartEmail.EOF
strEmail = objPartEmail("email")
Response.Write(strEmail & ";")
objPartEmail.MoveNext
Loop
closeCon()
Set objPartEmail = Nothing
%>
<%
' *** Här nedan skickar vi två dolda kopior av mailet till Gerth och Björn
%>
?BCC=fly@xxx.se;gem@xxx.se
&Subject=
UI: CQC Quality System Report gällande AWB-nummer:%20
<% strSQL = "SELECT awbNO FROM tblCaseAwbs WHERE caseID = " & intCaseID
Call openCon()
Set objAwb = objCon.Execute(strSQL)
Do Until objAwb.EOF
strAwb = objAwb("awbNO")
Response.Write(strAwb & "%20 %20")
objAwb.MoveNext
Loop
Call closeCon()
Set objAwb = Nothing %\>
&Body=
PÅ STATION ' <%=strStation%> ' HAR FÖLJANDE AVVIKELSE ÄGT RUM:
%250A %250A %250A
AWB-NUMMER:
%250A
\<% strSQL = "SELECT awbNO FROM tblCaseAwbs WHERE caseID = " & intCaseID
Call openCon()
Set objAwb = objCon.Execute(strSQL)
Do Until objAwb.EOF
strAwb = objAwb("awbNO")
Response.Write(strAwb & "%20")
objAwb.MoveNext
Loop
Call closeCon()
Set objAwb = Nothing
%\>
%250A %250A %250A
BESKRIVNING AV AKTUELLT ÄRENDE:%250A
<%=fixMailText(strDescription)%>%250A %250A %250A
CQC:s ÅTGÄRDSFÖRSLAG ÄR FÖLJANDE:%250A
<%=fixMailText(strProposal)%>%250A %250A %250A
CQC VILL HA DITT ÅTGÄRDSFÖRSLAG SENAST DEN: <%=dtmProposal%>%250A %250A %250A %250A
Med vänliga hälsningar%250A
<%=strKontakt%>%250A
Central Quality Control%250A
Telefon: %250A
Telefax:">
<font face="arial" size="2" color="red">
Skicka e-postmeddelande till berörd part</font></a>
func_functions_inc.asp
---------------------------------
' En funktion som snyggar till mailtext som skrivs ut från databasen
Function fixMailText(strText)
Set objRe = New regExp
objRe.IgnoreCase = True
objRe.Global = True
objRe.Pattern = "<[^>]*>"
x = objRe.Replace(x," ")
strText = Replace(strText,vbCrlf,"%250A")
fixMailText = strText
End Function
Det går inte att säga vart, när eller hur mailet bryts. Det är olika från gång till gång. Mestadels bryts informationsmängden i mailet när det är ganska mycket text som skall matas in i mailet.
Vad är det som är fel?
Jag är inte i dethär läget intresserad av att generera några HTML-baserade e-postmeddelanden. Jag är inte ens säker på om det går att göra i Ms Outlook 2000?
Någon har tidigare sagt att jag inte skall använda mig av "server.HTMLEncode" ?
http://www.webforum.nu/showthread.php?s=&postid=496794#post496794
Extremt tacksam för snabb feedback!