Avatar billede emma-sofie Nybegynder
25. september 2003 - 15:55 Der er 6 kommentarer og
1 løsning

CDO til JMail - Er der nogen der kan oversætte dette

Hej Alle

Jeg har downloadet et script til at håndtere links, fra DuWare.com.
Alt virker perfekt, men scriptet er lavet til mailkomponenten CDO.

Mit webhotel er Struer.Net og de anvender JMail.

Er der nogle der kan hjælpe med at ændre nedenstående kode, således at scriptet kan anvende JMail i stedet for CDONTS  ???
For en sikkerheds skyld, vedlægger jeg lige hele koden.

På forhånd mange tak for hjælpen  ;-)


<!--#include file="Connections/connDUdirectory.asp" -->
<!--#include file="inc_config.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
  MM_dupKeyRedirect="submit.asp"
  MM_rsKeyConnection=MM_connDUdirectory_STRING
  MM_dupKeyUsernameValue = CStr(Request.Form("LINK_URL"))
  MM_dupKeySQL="SELECT LINK_URL FROM LINKS WHERE LINK_URL='" & MM_dupKeyUsernameValue & "'"
  MM_adodbRecordset="ADODB.Recordset"
  set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
  MM_rsKey.ActiveConnection=MM_rsKeyConnection
  MM_rsKey.Source=MM_dupKeySQL
  MM_rsKey.CursorType=0
  MM_rsKey.CursorLocation=2
  MM_rsKey.LockType=3
  MM_rsKey.Open
  If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
    ' the username was found - can not add the requested username
    MM_qsChar = "?"
    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
    Response.Redirect(MM_dupKeyRedirect)
  End If
  MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "submit") Then

  MM_editConnection = MM_connDUdirectory_STRING
  MM_editTable = "LINKS"
  MM_editRedirectUrl = "default.asp"
  MM_fieldsStr  = "LINK_TYPE|value|LINK_NAME|value|LINK_URL|value|LINK_DESCRIPTION|value|LINK_DATED|value|LINK_APPROVED|value|LINK_RATED|value|LINK_RATES|value"
  MM_columnsStr = "LINK_TYPE|none,none,NULL|LINK_NAME|',none,''|LINK_URL|',none,''|LINK_DESCRIPTION|',none,''|LINK_DATED|',none,NULL|LINK_APPROVED|none,none,NULL|LINK_RATED|none,none,NULL|LINK_RATES|none,none,NULL"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
  Next

  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
  End If

End If
%>

<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

  If (Not MM_abortEdit) Then
 
      ' send email to admin
    Dim objCDO
    Set objCDO = Server.CreateObject("CDONTS.NewMail")
    objCDO.From = Request.Form("LINK_EMAIL")
    objCDO.To = myEmail
    objCDO.CC = Request.Form("LINK_EMAIL")
    objCDO.Subject = "New link has been submited"
    objCDO.Body = "A new link has been submited and needs to be approved." & vbnewline & "Link Name: " & Request.Form("LINK_NAME") & vbnewline & "Link URL: " & Request.Form("LINK_URL") & vbnewline & "Link Description: " & Request.Form("LINK_DESCRIPTION") & vbnewline & "Submited By: " & Request.Form("LINK_EMAIL")
    objCDO.Send()
    Set objCDO = Nothing

    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If

End If
%>
<%
Dim rsType
Dim rsType_numRows

Set rsType = Server.CreateObject("ADODB.Recordset")
rsType.ActiveConnection = MM_connDUdirectory_STRING
rsType.Source = "SELECT * FROM TYPES ORDER BY TYPE_NAME ASC"
rsType.CursorType = 0
rsType.CursorLocation = 2
rsType.LockType = 1
rsType.Open()

rsType_numRows = 0
%>
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>   
function DoTrimProperly(str, nNamedFormat, properly, pointed, points)
  dim strRet
  strRet = Server.HTMLEncode(str)
  strRet = replace(strRet, vbcrlf,"")
  strRet = replace(strRet, vbtab,"")
  If (LEN(strRet) > nNamedFormat) Then
    strRet = LEFT(strRet, nNamedFormat)           
    If (properly = 1) Then                   
      Dim TempArray                               
      TempArray = split(strRet, " ")   
      Dim n
      strRet = ""
      for n = 0 to Ubound(TempArray) - 1
        strRet = strRet & " " & TempArray(n)
      next
    End If
    If (pointed = 1) Then
      strRet = strRet & points
    End If
  End If
  DoTrimProperly = strRet
End Function
</SCRIPT>
<link href="assets/DUdirectory.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
<div class = "links">
  <table width="100%" border="0" cellspacing="2" cellpadding="2">
    <tr>
      <td align="left" valign="middle" class="textBold"><a href="default.asp">DIRECTORY</a>
        &raquo; SUBMIT A LINK</td>
      <td align="right" valign="middle" class="textBold"> </td>
    </tr>
    <tr>
      <td colspan="2" class="textBold">To submit a link, please fill out the form
        below. It will be reviewed, approved and published within 24 hours.</td>
    </tr>
    <tr align="center" valign="middle">
    <form action="<%=MM_editAction%>" method="POST" name="submit" id="submit">
        <td colspan="2"> <table border="0" cellpadding="0" cellspacing="1" bgcolor="#666666">
            <tr>
              <td align="left" valign="top" bgcolor="#FFFFFF"><table align="center" cellpadding="3" cellspacing="3">
              <% If Request.QueryString("requsername") <> "" Then %>
                  <tr valign="baseline">
                    <td colspan="2" align="left" valign="middle" nowrap class="textBold">The link you're submitting is already in the directory. Please try another. </td>
                  </tr>
                  <% End If %>
                  <tr valign="baseline">
                    <td align="right" valign="middle" nowrap class="textBold">EMAIL
                      ADDRESS: </td>
                    <td valign="middle"><input name="LINK_EMAIL" type="text" class="form" id="LINK_EMAIL" value="" size="45"></td>
                  </tr>
                  <tr valign="baseline">
                    <td align="right" valign="middle" nowrap class="textBold">CATEGORY:</td>
                    <td valign="middle"> <select name="LINK_TYPE" class="form" id="select">
                        <%
While (NOT rsType.EOF)
%>
                        <option value="<%=(rsType.Fields.Item("TYPE_ID").Value)%>"><%=(rsType.Fields.Item("TYPE_NAME").Value)%></option>
                        <%
  rsType.MoveNext()
Wend
If (rsType.CursorType > 0) Then
  rsType.MoveFirst
Else
  rsType.Requery
End If
%>
                      </select> </td>
                  </tr>
                  <tr valign="baseline">
                    <td align="right" valign="middle" nowrap class="textBold">
                      NAME:</td>
                    <td valign="middle"> <input name="LINK_NAME" type="text" class="form" value="" size="45" maxlength="60">
                    </td>
                  </tr>
                  <tr valign="baseline">
                    <td align="right" valign="middle" nowrap class="textBold">
                      URL:</td>
                    <td valign="middle"> <input name="LINK_URL" type="text" class="form" value="http://www." size="60" maxlength="60">
                    </td>
                  </tr>
                  <tr>
                    <td align="right" valign="top" nowrap class="textBold"> DESCRIPTION:</td>
                    <td valign="baseline"> <textarea name="LINK_DESCRIPTION" cols="60" rows="10" class="form"></textarea>
                    </td>
                  </tr>
                  <tr valign="baseline">
                    <td nowrap align="right">&nbsp;</td>
                    <td> <input name="submit" type="submit" class="form" id="submit2" onClick="MM_validateForm('LINK_EMAIL','','RisEmail','LINK_NAME','','R','LINK_URL','','R','LINK_DESCRIPTION','','R');return document.MM_returnValue" value="Submit">
                      <input type="hidden" name="LINK_DATED" value="<%= date()%>" size="32">
                      <input type="hidden" name="LINK_APPROVED" value="0" size="32">
                      <input type="hidden" name="LINK_RATED" value="0" size="32">
                      <input type="hidden" name="LINK_RATES" value="0" size="32">
                      <input type="hidden" name="MM_insert" value="submit"> </td>
                  </tr>
                </table></td>
            </tr>
          </table></td>
        </form>
     
    </tr>
    <tr align="center" valign="middle">
      <td colspan="2" class="text"><a href="default.asp">Directory</a> | <a href="submit.asp">Submit
        Links</a> | <a href="http://www.duware.com">Powered by DUdirectory</a></td>
    </tr>
  </table>
 
</div>


<%
rsType.Close()
Set rsType = Nothing
%>
Avatar billede maxsten Nybegynder
25. september 2003 - 16:01 #1
den er lavet som en CDONTS
så man kan ikke bare lave den til Jmail, så skal den laves helt om.

Maxsten
Avatar billede emma-sofie Nybegynder
25. september 2003 - 16:07 #2
Py ha....Hvad skal jeg så gøre ??
Avatar billede emma-sofie Nybegynder
25. september 2003 - 16:12 #3
Er det slet ikke muligt at lave om, så jeg kan bruge det ??
Avatar billede maxsten Nybegynder
25. september 2003 - 21:34 #4
tror jeg faktisk ikke..

Maxsten.

men jeg håber at det var hjælp nok...(selv om der ikke var noget)

Prøv at lede rundt omkring på www. og se om du kan finde nogle som allerede er laver.

Ps: har ikke noget sted du kan starte.

Maxsten
Avatar billede emma-sofie Nybegynder
26. september 2003 - 16:04 #5
Okay, tak skal du have.
Det er åbenbart en større opgave, ærgeligt.

Jeg lukker spørgsmålet og opretter det igen med lidt flere point, i håb om, at der er nogen der kan hjælpe - jeg kan ihvertfald ikke selv.

God Week-end
Avatar billede jpvj Nybegynder
26. september 2003 - 16:07 #6
Det er da kun denne del, der skal ændres:

    ' send email to admin
    Dim objCDO
    Set objCDO = Server.CreateObject("CDONTS.NewMail")
    objCDO.From = Request.Form("LINK_EMAIL")
    objCDO.To = myEmail
    objCDO.CC = Request.Form("LINK_EMAIL")
    objCDO.Subject = "New link has been submited"
    objCDO.Body = "A new link has been submited and needs to be approved." & vbnewline & "Link Name: " & Request.Form("LINK_NAME") & vbnewline & "Link URL: " & Request.Form("LINK_URL") & vbnewline & "Link Description: " & Request.Form("LINK_DESCRIPTION") & vbnewline & "Submited By: " & Request.Form("LINK_EMAIL")
    objCDO.Send()
    Set objCDO = Nothing

Kender ikke JMail, men det kan da ikke være så svært at slå et std. mail script op i hjælpen eller med Google...
Avatar billede emma-sofie Nybegynder
26. september 2003 - 16:12 #7
Hej jpvj

Jeg har prøvet at oversætte/ændre det, uden held. Derfor prøver jeg lige her på eksperten.

Hvis du kan, ville det være genialt - jeg har oprettet spørgsmålet med lidt flere point på:
http://www.eksperten.dk/spm/406198
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester