38 messaggi dal 24 maggio 2002



Devo inviare delle newsletter a degli indirizzi che sono su 2 tabelle diverse( rubrica_tesserati e mail). nel caso della tabella rubrica_tesserati devo controllare che l'utente abbia l'indirizzo di posta email)utilizzando la variabile booleana e_mail. Nel caso della tabella mail non devo fare alcun controllo perche'gli utenti riportati in quella tabella hanno indirizzi email (indirizzo_email).
Quale e' la procedura da seguire per inviare in un ciclo la newsletter a questi utenti?

Ciao
Federico



24 messaggi dal 06 settembre 2002
Sei un po scarsino di informazioni: innanzitutto con che linguaggio SQL stai lavorando?

Comunque non devi unire il risultato di due query (In questo caso dovresti utilizzare l'operatore UNION) bensì nella sintassi della query devi collegare le due tabelle utilizzando le chiavi delle relazioni quindi devi usare l'operatore JOIN, la sintassi da utilizzare chiaramente dipende dalla costruzione dei recordset nel tuo caso credo tu debba usare un Right Join oppure Left Join (se usi Access)

es:

SELECT rubrica_tesserati.*, mail.*
FROM rubrica_tesserati RIGHT JOIN mail ON (rubrica_tesserati.NomeChiave = mail .NomeChiave

38 messaggi dal 24 maggio 2002



Io stavo facendo nel seguente modo ma la newsletter viene inviata solo agli indirizzi della prima tabella(mail).....
Potete dare uno sguardo?


<html>
<head>
<title>Send mail</title>
</head>
<body bgcolor="ffffff">
<!--#include file="conn.asp"-->
<%SQL="select indirizzo_email from mail union Select email from rubrica_tesserati where e_mail_si=true"
set rsemails=Conn.Execute(SQL)

do while not rsemails.eof%>
<%
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
strCommenti = request.form("commento")

Mailer.FromName = "associazione culturale LIBERAMENTE"
Mailer.FromAddress="federico.grattarola@fao.org"

Mailer.RemoteHost = "pmdfint.fao.org"
'Mailer.Recipient = rsemails("indirizzo_email")
Mailer.Recipient = rsemails(0)
Mailer.Subject = request.form("oggetto")
strBody = " gentile associato di LIBERAMENTE" & vbCrLf & vbCrLf

strBody = strBody & "Ecco le novita': " &strCommenti & vbCrLf

Mailer.BodyText = strBody
'Mailer.ContentType = "text/html"

if Mailer.SendMail then

Response.Write "<strong>Posta Inviata.......</strong>"

else

Response.Write "Mail fallita. Controlla il nome del server e la connessione tcp/ip?<br>"

Response.Write Mailer.Response
end if

%>
<%rsemails.movenext
loop

set rsemails=nothing
Conn.close
Set conn=nothing%>
</body>

</html>




Ciao


24 messaggi dal 06 settembre 2002
Prova a cambiare come di seguito:

Originale
==================================================
<html>
<head>
<title>Send mail</title>
</head>
<body bgcolor="ffffff">
<!--#include file="conn.asp"-->
<%SQL="select indirizzo_email from mail union Select email from rubrica_tesserati where e_mail_si=true"
set rsemails=Conn.Execute(SQL)
===================================================

Modificato
===================================================
<html>
<head>
<title>Send mail</title>
</head>
<body bgcolor="ffffff">
<!--#include file="conn.asp"-->
<%SQL="select indirizzo_email from mail union Select email from rubrica_tesserati where email Is Not Null"
set rsemails=Conn.Execute(SQL)


38 messaggi dal 24 maggio 2002
Mi da il seguente errore con la modifica che tu mi hai suggerito

Mail fallita. Controlla il nome del server e la connessione tcp/ip?

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'Response'

/newsletter/inviamail.asp, line 47


Non capisco

38 messaggi dal 24 maggio 2002
Funziona utilizzando la forma iniziale che ho riportato sul messaggio.. Non mia ccorgevo che funzionava per un errore sugli indirizzi di posta...
Grazie Comunque

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.