Convertire CDONTS in CDOSYS

  • Creatore Discussione Creatore Discussione imaui
  • Data di inizio Data di inizio

imaui

Nuovo Utente
21 Feb 2008
12
0
0
Salve a tutti,ho un piccolo problema nella conversione da CDONTS in CDOSYS di questo file visto che sul server 2003 in componente CDONTS nn esiste piu...vi posto il codice..

<%

function SendMail(sTo, sFrom, sPriority, sSubject, sBody, bHTML){
cdoLow = 0;
cdoNormal = 1;
cdoHigh = 2;
CdoBodyFormatText = 1;
CdoMailFormatText = 1;

var oMailMessage = new ActiveXObject("aspmail.NewMail");
oMailMessage.To = sTo;
oMailMessage.Value("Reply-To") = sFrom;
oMailMessage.From = sFrom;
oMailMessage.Subject= sSubject;


if (sPriority == "LOW"){
oMailMessage.importance = cdoLow;
} else if(sPriority == "HIGH") {
oMailMessage.importance = cdoHigh;
} else {
oMailMessage.importance = cdoNormal;
}

if (bHTML==1) {
oMailMessage.BodyFormat = CdoBodyFormatText;
oMailMessage.MailFormat = CdoMailFormatText;
} else {
oMailMessage.BodyFormat = 0;
oMailMessage.MailFormat = 0;
}

oMailMessage.Body = sBody;
oMailMessage.Send();
return 1;
}



if (Request("conferma")=="OK") {
curDir = Server.MapPath("gest.mdb");
connNews = Server.CreateObject("ADODB.Connection");
connNews.Open("DBQ=" + curDir + ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;");

re = new RegExp("'", "g");

cUserName = new String( Request("Username") );
cUserName = cUserName.substr(0,28);
cUserName = cUserName.replace( re, "-");

cPassword = new String( Request("Password") );
cPassword = cPassword.substr(0,28);
cPassword = cPassword.replace( re, "-");

cEmail = Request(String("email"));

cview_dati = Request(String("view_dati"));

cview_profilo = Request(String("view_profilo"));

cmessaggi_check = Request(String("messaggi_check"));

cStatus = Request("Status");

today=new Date();
// cData = today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getYear();
cData = today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getYear()+" "+today.getHours()+"."+today.getMinutes()+"."+today.getSeconds();

rsDBASE = Server.CreateObject("ADODB.Recordset");
rsDBASE.ActiveConnection = connNews;
rsDBASE.Source = "SELECT * FROM Utenti WHERE (Username = '" + cUserName + "') or (email='" +cEmail+ "')";
rsDBASE.LockType = 2;
rsDBASE.Open();
cRandom=Math.ceil( Math.random()*32323212 );
if (rsDBASE.EOF)
{
rsDBASE.AddNew();
rsDBASE("Username")=cUserName;
rsDBASE("Password")=cPassword;
rsDBASE("Email")=cEmail;
rsDBASE("view_dati")=cview_dati;
rsDBASE("view_profilo")=cview_profilo;
rsDBASE("messaggi_check")=cmessaggi_check;
rsDBASE("Status")=cStatus;
rsDBASE("Data")=cData;
rsDBASE("Attivazione")= cRandom;
rsDBASE.Update();
cMessaggio = "Per attivare il tuo account sul sito clicca questo link: http://www.ciccio.it/account.asp?id="+cRandom+"";

SendMail( cEmail,"[email protected]","HIGH","Attivazione",cMessaggio, 0 );
%>
 
Ciao!

Vedo che crei questo oggetto:

var oMailMessage = new ActiveXObject("aspmail.NewMail");

Non è mica CDONTS!

Su che server sei?

Prova a chiedere loro che oggetto stai usando con questo script: la classe aspmail.NewMail non mi dice nulla... non è nemmeno la classe per usare ASPEmail...

Lo script (temo) va proprio ristrutturato da zero.

Fammi sapere
 
Si avevo fatto un po di confusione io comunque...
ho chiesto a loro e sono su un server win 2003 ..mi hanno dato questo script che ho provato in una pagina a se e funziona ma nn so inglobarlo all'interno della pagina di prima in sostituzione del cdonts


<%
Set Config = Server.CreateObject("CDO.Configuration")
Set Fields = Config.Fields
Fields.Item("http://schemas.microsoft.com/cdo/configuration/SendUsing") = 2
Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverPort") = 8025

Fields.Update


Set myMail=CreateObject("CDO.Message")
Set myMail.Configuration = Config

myMail.Subject="Sending email with CDO"
myMail.From="[email protected]"
myMail.To="[email protected]"
myMail.TextBody="This is a message."
myMail.Send
Set myMail = nothing
Set Fields = Nothing
Set Config = Nothing
%>
 
Tieni presente che lo script che hai appena postato è scritto in VBScript mentre la tua pagina è in JScript.

Mi sa che c'è un po troppa confusione...

Ti consiglio di studiare un po di ASP :)
 
E' una prova, vedi se va:

<%

function SendMail(sTo, sFrom, sPriority, sSubject, sBody, bHTML){
cdoLow = 0;
cdoNormal = 1;
cdoHigh = 2;
CdoBodyFormatText = 1;
CdoMailFormatText = 1;

var Config = Server.CreateObject("CDO.Configuration");
var Fields = Config.Fields;
Fields.Item("http://schemas.microsoft.com/cdo/configuration/SendUsing") = 2;
Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost";
Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverPort") = 8025;
Fields.Update;

var oMailMessage = Server.CreateObject("CDO.Message");
oMailMessage.Configuration = Config;
oMailMessage.To = sTo;
oMailMessage.Value("Reply-To") = sFrom;
oMailMessage.From = sFrom;
oMailMessage.Subject = sSubject;

if (sPriority == "LOW"){
oMailMessage.importance = cdoLow;
} else if(sPriority == "HIGH") {
oMailMessage.importance = cdoHigh;
} else {
oMailMessage.importance = cdoNormal;
}

if (bHTML==1) {
oMailMessage.BodyFormat = CdoBodyFormatText;
oMailMessage.MailFormat = CdoMailFormatText;
} else {
oMailMessage.BodyFormat = 0;
oMailMessage.MailFormat = 0;
}

oMailMessage.HTMLBody = sBody;
oMailMessage.Send();
return 1;
}



if (Request("conferma")=="OK") {
curDir = Server.MapPath("gest.mdb");
connNews = Server.CreateObject("ADODB.Connection");
connNews.Open("DBQ=" + curDir + ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;");

re = new RegExp("'", "g");

cUserName = new String( Request("Username") );
cUserName = cUserName.substr(0,28);
cUserName = cUserName.replace( re, "-");

cPassword = new String( Request("Password") );
cPassword = cPassword.substr(0,28);
cPassword = cPassword.replace( re, "-");

cEmail = Request(String("email"));

cview_dati = Request(String("view_dati"));

cview_profilo = Request(String("view_profilo"));

cmessaggi_check = Request(String("messaggi_check"));

cStatus = Request("Status");

today=new Date();
// cData = today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getYear();
cData = today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getYear()+" "+today.getHours()+"."+today.getMinutes()+"."+toda y.getSeconds();

rsDBASE = Server.CreateObject("ADODB.Recordset");
rsDBASE.ActiveConnection = connNews;
rsDBASE.Source = "SELECT * FROM Utenti WHERE (Username = '" + cUserName + "') or (email='" +cEmail+ "')";
rsDBASE.LockType = 2;
rsDBASE.Open();
cRandom=Math.ceil( Math.random()*32323212 );
if (rsDBASE.EOF)
{
rsDBASE.AddNew();
rsDBASE("Username")=cUserName;
rsDBASE("Password")=cPassword;
rsDBASE("Email")=cEmail;
rsDBASE("view_dati")=cview_dati;
rsDBASE("view_profilo")=cview_profilo;
rsDBASE("messaggi_check")=cmessaggi_check;
rsDBASE("Status")=cStatus;
rsDBASE("Data")=cData;
rsDBASE("Attivazione")= cRandom;
rsDBASE.Update();
cMessaggio = "Per attivare il tuo account sul sito clicca questo link: http://www.ciccio.it/account.asp?id="+cRandom+"";

SendMail( cEmail,"[email protected]","HIGH","Attivazione",cMessaggi o, 0 );
%>

Fammi sapere!
 
Ciao Luka

Ciao Luca,ho provato con questo codice ma nn va e nn mi dice nemmeno qual'è la riga errata...forse eliminando il discorso della priorità dell'email..grazie per il tuo aiuto e appena avro un secondo studierò l'asp :-)))
 
Si, esatto, prova ad eliminare tutte le voci inerenti alla priorità ed atre caratteristiche non indispensabili per l'email.

Ricorda anche di eliminare le voci dai parametri all'atto della creazione della funzione.

Ad esempio:

function SendMail(sTo, sFrom, sPriority, sSubject, sBody, bHTML)

Se non ti interessa la priorità eliminala:

function SendMail(sTo, sFrom, sSubject, sBody, bHTML)

ed eliminala dal codice che la valorizza all'interno di questa funzione.
 
...

Ho provato anche cosi ma nn va...mi arrendo..grazie Luca per la tua collaborazione...buon lavoro!!!
 

Discussioni simili