MailingList asp

windt

Utente Attivo
7 Giu 2016
50
5
8
Ciao ragazzi,
la priva volta che sono qui e non so se sto postando nella sezione giusta. Chi mi aiuta??
ho installato una mailinglist in ASP e non riesco a fare partire le mail..... o meglio, chi si registra dovrò ricevere mail di conferma per la registrazione o la cancellazione. Posto il vodice :-( dove sta l'errore????


Mailing = lcase(request("Mailing"))

If Mailing = "add" then

on error resume next

Body = "Ciao "&request("name") & vbCrlf & vbCrlf
Body = Body &"Per favore conferma questo indirizzo e-mail per essere inserito nella MailingList di "& Live_server & vbCrlf & vbCrlf
Body = Body &"Se invece questa e-mail ti giunge per errore per favore ignorala grazie" & vbCrlf & vbCrlf
Body = Body &"Per la tua conferma clicca il collegamento qui sotto grazie "& vbCrlf
Body = Body &"Link : " & ServerURL & "mail.asp?action=add&nome="&nome&"&email="&request("email")

email = request("email")

Set cdoConfig = CreateObject("CDO.Configuration")
Mail.MailFormat = html
Mail.BodyFormat = 1
Mail.from = email_iscr
Mail.to = email
Mail.Subject = Og_Iscrizione
Mail.Body = Body
Mail.Send

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" BORDERCOLOR=""#000000"" CELLSPACING=""0"" CELLPADDING=""0""><TR>" & vbcrlf)
Response.Write("<td width=""553""><DIV ALIGN=""CENTER""><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Richiesta salvata<br></font>Per verificare l'autenticità della tua e-mail controlla la tua" & vbcrlf)
Response.Write("casella di posta e poi esegui le istruzioni che trovi nella e-mail che ti è stata inviata" & vbcrlf)
Response.Write("per confermare la tua<font color=""#800000""> Iscrizione </font>" & vbcrlf)
Response.Write("<br>Grazie</DIV></TR></TABLE></div>")


End if

If Mailing = "cancellami" then

on error resume next

Body = "Ciao "&request("name")& vbCrlf
Body = Body &"Per favore conferma la tua cancellazione alla Mailing List di "& Live_server & vbCrlf & vbCrlf
Body = Body &"Se invece questa e-mail ti giunge per errore per favore ignorala grazie "& vbCrlf & vbCrlf
Body = Body &"Per la tua conferma clicca il collegamento qui sotto grazie "& vbCrlf
Body = Body &"Link : " & ServerURL &"mail.asp?action=cancellami&nome="&nome&"&email="&request("email")

email = request("email")

Set cdoConfig = CreateObject("CDO.Configuration")
Mail.MailFormat = html
Mail.BodyFormat = 1
Mail.from = email_can
Mail.to = email
Mail.Subject = Og_cancellazione
Mail.Body = Body
Mail.Send

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" BORDERCOLOR=""#000000"" CELLPADDING=""0"" CELLSPACING=""0"">" & vbcrlf)
Response.Write("<TR><td width=""554""><DIV ALIGN=""CENTER""><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Richiesta salvata<br></font>Per verificare l'autenticità della tua e-mail controlla la tua" & vbcrlf)
Response.Write("casella di posta e poi esegui le istruzioni che trovi nella e-mail che ti è stata inviata" & vbcrlf)
Response.Write("per confermare la tua <font color=""#800000""> Cancellazione </font>" & vbcrlf)
Response.Write("<br>Grazie</DIV></TR></TABLE></div>")

End if

DoLcase= request("action")
Action = lcase(DoLcase)

if Action = "add" then

Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT email FROM Mailing WHERE email='"& request("email")&"'"
RS.open sql,Conn

MI AIUTATE?????????
 

windt

Utente Attivo
7 Giu 2016
50
5
8
Ciao, errore visivo no. Anzi, conferma che invia mail ma il destinatario non riceve nessuma mail per confermare iscrizione allla mailinglist. Che una volta confermato in automatico riparte conferma per inserire mail nel db. Questo per evitare di essere trattato come spam.
 

windt

Utente Attivo
7 Giu 2016
50
5
8
continuo...... la stessa cosa nel modo inverso e cioè: inserendo il nome e la mail l'utente decide di cancellarsi tramite mail che dovrebbe ricevere
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
539
13
18
Italy
www.riciclarte.info
Disabilita la funzione "on error..." apponendo un segno di spunta " ' " dinanzi, segui l'esempio:
Codice:
 ' on error resume next
in pratica "on error" disabilita la routine di gestione degli errori, così facendo sai dove lo script incontra il problema segnalandotelo a schermo.
 
Ultima modifica:

windt

Utente Attivo
7 Giu 2016
50
5
8
Ho provato.... non cambia nulla, non mi viene segnalato nessun tipo di errore. Resta il problema che non invia mail di conferma iscrizione o cancellazione all'utente che vuole iscriversi alla mailing list. Quindi, se chi si iscrive non da conferma, la sua mail non viene inserita nel db. :-( :-(
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
539
13
18
Italy
www.riciclarte.info
secondo me manca del codice... l'oggetto CDO non viene creato.

Ecco un esempio di codice funzionante e confrontalo con il tuo:
Codice:
' Dichiara l'oggetto email e la configurazione
Dim objMail, objConfig

' Crea l'oggetto email
   Set objMail = Server.CreateObject("CDO.Message")
   Set objConfig = Server.createObject("CDO.Configuration")
   With objConfig
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mioserver.it"
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
     .Fields.Update
   End With

' Assegna le configurazioni
   Set objMail.Configuration = objConfig
' Mittente dell'email (indirizzo)
     objMail.From = "mittente@miodominio.it"

' Destinatario dell'email (indirizzo)
     objMail.To = "giampaolo@giampaolo.it"
' Cc e Bcc (opzionale)
' objMail.Cc = "altroindirizzo@dominio.com; ancora@dominio.com"
' objMail.Bcc = "altroindirizzo@dominio.com; ancora@dominio.com"
' Oggetto dell'email
     objMail.Subject = "Servizio auto sostitutiva"
' Valore di priorità
     objMail.Fields("urn:schemas:httpmail:importance").Value = 2
' conferma di lettura
     objMail.Fields("urn:schemas:mailheader:Disposition-Notification-To").Value = "<mittente@miodominio.it>"
     objMail.Fields.Update()
' Allegare un file
     'objMail.AddAttachment("d:\inetpub\webs\tuodominiocom\file.zip")
' Corpo del messaggio
     objMail.HTMLBody = Corpo_Email ' Formato HTML
' Invia l'email
     objMail.Send()
   Set objMail = Nothing
Se hai difficoltà inviami lo script a: virtual_box@hotmail.com (formato zip)
 

windt

Utente Attivo
7 Giu 2016
50
5
8
Ok Paolo, provo questo e se non funziona ti invio tutta applicazione...... la ritengo bellissima e molto funzionale. (fino ad un paio di anni fa funzionava)
 

Giorgius

Nuovo Utente
23 Mar 2015
6
0
1
ocio che spesso molti (quasi tutti) i problemi legati al mancato invio di newsletter e/o mailng list sono divute al fatto che Aruba blocca dette operazioni se particolarmente importanti in termini di invii...
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
539
13
18
Italy
www.riciclarte.info
Copia/incolla il codice modificato e testato relativo alla pagina "mail.asp":

Codice:
<!--#include file="conn.asp"-->
<!--#include file="connopencofigurazione.asp"-->
<%

   Dim server_smtp
   Dim objMail
   Dim objConfig
     server_smtp ="smtp.tuodominio.it"
     
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Mailing List</title>
</head>
<body>
<p align="center"><img border="0" src="../images/logo.gif" width="200" height="48">
<div align="center">
<center>
<table border="0" width="66%" cellspacing="1">
<tr>
<td width="100%">
<%
Nome = replace(request("nome")," ","%20")

If request("nome") = "" then

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""17"" CELLPADDING=""0"" CELLSPACING=""0"" BORDERCOLOR=""#000000"">" & vbcrlf)
Response.Write("<TR><td width=""511""><DIV ALIGN=""CENTER""><br><font color=""#990000"" face=""Arial"" size=""4"">Scusa inserisci il tuo Nome - !!<br></font>" & vbcrlf)
Response.Write("<BR>Correggi questo problema grazie!<br><br></DIV></TR></TABLE></div>")

else

If request("email") = "" then

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""21"" CELLSPACING=""0"" CELLPADDING=""0"" BORDERCOLOR=""#000000""><TR>" & vbcrlf)
Response.Write("<td width=""555""><DIV ALIGN=""CENTER""><br><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Scusa inserisci la tua E-mail - !!<br></font><BR>Correggi questo problema grazie!<br>" & vbcrlf)
Response.Write("<br></DIV></TR></TABLE></div>")

else

Mailing = lcase(request("Mailing"))

If Mailing = "add" then

' on error resume next

Body = "Ciao "&request("name") & vbCrlf & vbCrlf
Body = Body &"Per favore conferma questo indirizzo di e-mail per essere inserito nella MailingList di "& Live_server & vbCrlf & vbCrlf
Body = Body &"Se invece questa e-mail ti giunge per errore per favore ignorala grazie" & vbCrlf & vbCrlf
Body = Body &"Per la tua conferma clicca il collegamento qui sotto grazie "& vbCrlf
Body = Body &"Link : " & ServerURL & "mail.asp?action=add&nome="&nome&"&email="&request("email")

email = request("email")

   Set objMail = Server.CreateObject("CDO.Message")
   Set objConfig = Server.createObject("CDO.Configuration")
   With objConfig
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = server_smtp
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
     .Fields.Update
   End With
   Set objMail.Configuration = objConfig
     objMail.From = email_can ' Mittente dell'email (indirizzo)
     objMail.To = email ' Destinatario dell'email (indirizzo)
     objMail.Subject = Og_cancellazione
     objMail.Fields.Update()
     objMail.HTMLBody = Body ' Formato HTML
     objMail.Send() ' Invia l'email
   Set objMail = Nothing

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" BORDERCOLOR=""#000000"" CELLSPACING=""0"" CELLPADDING=""0""><TR>" & vbcrlf)
Response.Write("<td width=""553""><DIV ALIGN=""CENTER""><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Richiesta salvata<br></font>Per verificare l'autenticità della tua e-mail per favore controlla la tua" & vbcrlf)
Response.Write("casella di posta e poi esegui le istruzioni che trovi nella e-mail che ti è" & vbcrlf)
Response.Write("stata inviata per confermare la tua<font color=""#800000""> Iscrizione </font>alla Mailing List!" & vbcrlf)
Response.Write("<br>Grazie</DIV></TR></TABLE></div>")


End if

If Mailing = "cancellami" then

' on error resume next

Body = "Ciao "&request("name")& vbCrlf
Body = Body &"Per favore conferma la tua cancellazione alla Mailing List di "& Live_server &  vbCrlf & vbCrlf
Body = Body &"Se invece questa e-mail ti giunge per errore per favore ignorala grazie "& vbCrlf & vbCrlf
Body = Body &"Per la tua conferma clicca il collegamento qui sotto grazie "& vbCrlf
Body = Body &"Link : " & ServerURL &"mail.asp?action=cancellami&nome="&nome&"&email="&request("email")

email = request("email")

   Set objMail = Server.CreateObject("CDO.Message")
   Set objConfig = Server.createObject("CDO.Configuration")
   With objConfig
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = server_smtp
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
     .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
     .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
     .Fields.Update
   End With
   Set objMail.Configuration = objConfig
     objMail.From = email_can ' Mittente dell'email (indirizzo)
     objMail.To = email ' Destinatario dell'email (indirizzo)
     objMail.Subject = Og_cancellazione
     objMail.Fields.Update()
     objMail.HTMLBody = Body ' Formato HTML
     objMail.Send() ' Invia l'email
   Set objMail = Nothing

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" BORDERCOLOR=""#000000"" CELLPADDING=""0"" CELLSPACING=""0"">" & vbcrlf)
Response.Write("<TR><td width=""554""><DIV ALIGN=""CENTER""><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Richiesta salvata<br></font>Per verificare l'autenticità della tua e-mail per favore controlla la tua" & vbcrlf)
Response.Write("casella di posta e poi esegui le istruzioni&nbsp;che trovi nella e-mail che ti è" & vbcrlf)
Response.Write("stata inviata per confermare la tua <font color=""#800000""> Cancellazione </font>dalla Mailing List!" & vbcrlf)
Response.Write("<br>Grazie</DIV></TR></TABLE></div>")

End if

DoLcase= request("action")
Action = lcase(DoLcase)

if Action = "add" then

Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT email FROM Mailing WHERE email='"& request("email")&"'"
RS.open sql,Conn


if not RS.EOF then
Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" CELLPADDING=""0"" CELLSPACING=""0"" BORDERCOLOR=""#000000""><TR>" & vbcrlf)
Response.Write("<td width=""557""><DIV ALIGN=""CENTER""><br><font color=""#990000"" face=""Arial"" size=""4"">Mi dispiace ma questo indirizzo e-mail" & vbcrlf)
Response.Write("è gia presente nel nostro DataBase<br></font>Correggi questo problema grazie!" & vbcrlf)
Response.Write("<br></DIV></TR></TABLE></div>")
Else
conn.Execute = "insert into Mailing (nome, Email)values('"&request("nome")&"','"&request("email")&"')"
conn.Close
set conn = nothing

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" CELLSPACING=""0"" CELLPADDING=""0"" BORDERCOLOR=""#000000""><TR>" & vbcrlf)
Response.Write("<td width=""557""><DIV ALIGN=""CENTER""><br><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Richiesta salvata<br> </font>Inserimento nella nostra <font color=""#800000""> Mailing List</font> è riuscito perfettamente grazie!" & vbcrlf)
Response.Write("<br></DIV></TR></TABLE></div>")

End IF
End if

If Action = "cancellami" then

conn.Execute("delete * from Mailing where email='" & request("email")& "';")
conn.Close
set conn = nothing

Response.Write("<div align=""center""><TABLE WIDTH=""100%"" BORDER=""0"" HEIGHT=""1"" BORDERCOLOR=""#000000""><TR>" & vbcrlf)
Response.Write("<td width=""557""><DIV ALIGN=""CENTER""><br><font color=""#990000"" face=""Arial"" size=""4"">" & vbcrlf)
Response.Write("Richiesta salvata<br></font>La tua e-mail è stata <font color=""#800000""> Rimossa </font> " & vbcrlf)
Response.Write("dalla nostra Mailing List<br></DIV></TR></TABLE></div>")

End IF
end if
end if
%>
</td>
</tr>
</table>
</center>
</div>
<form>
<p align="center">
<font size=2 face="arial">
<input type="button" value="Chiudi questa finestra" name="B1" onClick="window.close()">
</font>
</form>
</body>
</html>
devi personalizzarti la variabile "server_smtp".

Il problema è nel metodo invio email, obsoleto e non più utilizzato.
Devi sostituire il metodo CDONTS con il metodo CDO, usa il frammento di codice utilizzato nel file sopra.
In bocca al lupo...
 

windt

Utente Attivo
7 Giu 2016
50
5
8
Paoloooooooooo :) un grazie grandissimooooooooo :) ti dovrebbero fare santooooooo :) Finalmente funziona. Cmq avevo impostato gli stessi parametri che hai messo tu (forse sbagliavo qualche passaggio) perchè sapevo che i server erano cambiati. Infatti altre applicazioni, tipo form li avevo fatti e mi funzionano. G R A Z I E, senza di te non sari riuscito. a Presto.
 
  • Like
Reactions: Paolo69

windt

Utente Attivo
7 Giu 2016
50
5
8
Volevo chiederti una cosa.
Malgrado nel form di mail.asp ci sono istruzioni per andare ad inizio paragrafo
(come qui:
Body = Body &"Questa mail è stata generata automaticamente a seguito della tua richiesta" & vbCrlf & vbCrlf
Body = Body &"Cordiali saluti" & vbCrlf & vbCrlf

chi riceve la mail la riceve senza interruzione di paragrafo, cioè non va a capo ed è scritto tutto di seguito.
 

windt

Utente Attivo
7 Giu 2016
50
5
8
Ciao Paolo, non ti ho dato nessuna risposta perchè non va. Sto facendo delle prove :-( Spero che vada e ti giro tutto.... ti puo sempre tornare utile
 

windt

Utente Attivo
7 Giu 2016
50
5
8
Finalmenteeeee :) ho sudato ma ce l'ho fatta :) ho dovuto correggere anche altri piccoli errori, del tipo (name) con nome perche non andava. Ti posto come ho fatto:

Mailing = lcase(request("Mailing"))

If Mailing = "add" then

' on error resume next

Body = "Ciao "&request("nome") & vbCrlf & vbCrlf
Body = Body &" <br /><br />"
Body = Body &"Per favore conferma questo indirizzo e-mail per essere inserito nella MailingList di "& Live_server & vbCrlf & vbCrlf
Body = Body &" <br />"
Body = Body &"Se invece questa e-mail ti giunge per errore per favore ignorala grazie <br /><br />"
Body = Body &"Per la tua conferma clicca il collegamento qui sotto grazie<br />"
Body = Body &"Link : " & ServerURL & "mail.asp?action=add&nome="&nome&"&email="&request("email")
Body = Body &" <br /><br />"
Body = Body &"Questa mail è stata generata automaticamente a seguito della tua richiesta <br /><br />"

email = request("email")

Grazie infinite Paolooooo, ci sentiamo presto
 
  • Like
Reactions: Paolo69

windt

Utente Attivo
7 Giu 2016
50
5
8
Uffffffffff....... ciao Paolo, tu hai provato lo script che ti ho girato? sei riuscito a metterlo in funzione ?