.AddRecipient kommer ind i TO listen og hvis du sendeer til 5 brugere vil de kunne se hinandens email adresse i TO feltet sådan her: b1@mail.dk;b2@mail.dk;b3@mail.dk;b4@mail.dk;b5@mail.dk
hvorimod hvis du bruger AddRecipientBCC kan modtageren ikke se de andre mail adresser men det ser ud som om mailen kun er sendt til en person.
Det man typisk gøre er at lave mailen X antal gange:
do while not rs.EOF set Jmail = Server.CreateOBject("JMail.Message")
Jeg sender lige hele mailscriptet, det består af 2 filer :
Første : inc_forum_subscription_email.asp
<% CAT_ID = request.form("CAT_ID") FORUM_ID = request.form("FORUM_ID") FORUM_TITLE = request.form("Forum_Title") PostedByName = request.form("UserName") subject = Request.Form("Subject") Set rs = my_Conn.Execute("SELECT TOPIC_ID FROM " & strTablePrefix & "TOPICS WHERE T_SUBJECT = '" & subject & "' AND FORUM_ID="& FORUM_ID & " AND CAT_ID=" & CAT_ID & " ORDER BY T_DATE DESC") TopicNum = rs(0) rs.close set rs = Nothing if lcase(strEmail) = "1" and strForumSubscription = "1" then strSubject = FORUM_TITLE & " - Nyt indlæg" strMessage = "Hej! " & vbCrLf & vbCrLf strMessage = strMessage & PostedByName & " har indsat et nyt indlæg i forummet " & FORUM_TITLE & " (som du har bedt om at få en orientering om). " & vbCrLf & vbCrLf strMessage = strMessage & "Vedrørende emnet - " & Request.Form("Subject") & "." & vbCrLf & vbCrLf strMessage = strMessage & "Du kan se indlægget på " & strForumURL & "link.asp?TOPIC_ID=" & TopicNum & vbCrLf 'get subscribed members strRecipients = "" sql = "select M_EMAIL from forums_subscriptions, " & strMemberTablePrefix & "members where f_id="& forum_id & " and c_id=" & cat_id &" and m_id=member_id and m_id<>" & getMemberId(strDBNTUserName) set rs = my_Conn.execute(sql) do while not rs.eof 'concatenate all the emails with a ";" probably works only with CDONTS if emailfield(rs(0))<>0 then strRecipients = strRecipients & rs(0) & "; " end if rs.movenext loop if strRecipients<>"" then SubscriptionsForumsMod = "1" %> <!--#include file="inc_mail.asp"--> <% SubscriptionsForumsMod = "0" end if
end if %>
Den må så lave et kald til denne fil, der sender mailene afsted :
inc_mail.asp
select case lcase(strMailMode) case "aspmail" Set objNewMail = Server.CreateObject("SMTPsvg.Mailer") objNewMail.FromName = strFromName objNewMail.FromAddress = strSender 'objNewMail.AddReplyTo = strSender objNewMail.RemoteHost = strMailServer objNewMail.AddRecipient strRecipientsName, strRecipients objNewMail.Subject = strSubject objNewMail.BodyText = strMessage on error resume next '## Ignore Errors SendOk = objNewMail.SendMail If not(SendOk) <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & objNewMail.Response & "</li>" End if case "aspemail" Set objNewMail = Server.CreateObject("Persits.MailSender") objNewMail.FromName = strFromName objNewMail.From = strSender objNewMail.AddReplyTo strSender objNewMail.Host = strMailServer objNewMail.AddAddress strRecipients, strRecipientsName objNewMail.Subject = strSubject objNewMail.Body = strMessage on error resume next '## Ignore Errors objNewMail.Send If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if case "aspqmail" Set objNewMail = Server.CreateObject("SMTPsvg.Mailer") objNewMail.QMessage = 1 objNewMail.FromName = strFromName objNewMail.FromAddress = strSender objNewMail.RemoteHost = strMailServer objNewMail.AddRecipient strRecipientsName, strRecipients objNewMail.Subject = strSubject objNewMail.BodyText = strMessage on error resume next '## Ignore Errors objNewMail.SendMail If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if case "cdonts" Set objNewMail = Server.CreateObject ("CDONTS.NewMail") objNewMail.BodyFormat = 1 objNewMail.MailFormat = 0 on error resume next '## Ignore Errors objNewMail.Send strSender, strRecipients, strSubject, strMessage If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if on error resume next '## Ignore Errors case "chilicdonts" Set objNewMail = Server.CreateObject ("CDONTS.NewMail") on error resume next '## Ignore Errors objNewMail.Send strSender, strRecipients, strSubject, strMessage If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl:: " & Err.Description & "</li>" End if on error resume next '## Ignore Errors case "dkqmail" Set objNewMail = Server.CreateObject("dkQmail.Qmail") objNewMail.FromEmail = strSender objNewMail.ToEmail = strRecipients objNewMail.Subject = strSubject objNewMail.Body = strMessage objNewMail.CC = "" objNewMail.MessageType = "TEXT" on error resume next '## Ignore Errors objNewMail.SendMail() If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl:: " & Err.Description & "</li>" End if case "geocel" set objNewMail = Server.CreateObject("Geocel.Mailer") objNewMail.AddServer strMailServer, 25 objNewMail.AddRecipient strRecipients, strRecipientsName objNewMail.FromName = strFromName objNewMail.FromAddress = strFrom objNewMail.Subject = strSubject objNewMail.Body = strMessage on error resume next '## Ignore Errors objNewMail.Send() if Err <> 0 then Response.Write "Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description else Response.Write "Din e-mail er blevet sendt..." end if case "iismail" Set objNewMail = Server.CreateObject("iismail.iismail.1") MailServer = strMailServer objNewMail.Server = strMailServer objNewMail.addRecipient(strRecipients) objNewMail.From = strSender objNewMail.Subject = strSubject objNewMail.body = strMessage on error resume next '## Ignore Errors objNewMail.Send If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if case "jmail" Set objNewMail = Server.CreateObject("Jmail.smtpmail") objNewMail.ServerAddress = strMailServer objNewMail.AddRecipient strRecipients objNewMail.Sender = strSender objNewMail.Subject = strSubject objNewMail.body = strMessage objNewMail.priority = 3 on error resume next '## Ignore Errors objNewMail.execute If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if case "smtp" Set objNewMail = Server.CreateObject("SmtpMail.SmtpMail.1") objNewMail.MailServer = strMailServer objNewMail.Recipients = strRecipients objNewMail.Sender = strSender objNewMail.Subject = strSubject objNewMail.Message = strMessage on error resume next '## Ignore Errors objNewMail.SendMail2 If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if end select
Set objNewMail = Nothing %>
Her er lidt forklaring på hvad det skal gøre :
Det kan være jeg ikke fik mig udtrykt rigtigt.
Selve udsending af mail fra sitet generelt virker fint med JMAIL.
MEN
Det mod (script) jeg har sendt går ud på :
Brugerne kan tilmelde sig et forum, de får så en mail sendt, når der er nye indlæg i forummet. Når der er svar på egne indlæg virker det fint, men da bruges dette script heller ikke til udsending af mail.
Det er når brugere tilmelder sig, får de et " 1 " i de to tabeller i databasen. (Tror jeg)
Men forståligheden skyld vil jeg gerne sende dig hele scriptet.
Scriptet bruges på Http://www.Gisforum.dk , men efter at min host har deaktiveret CDONTS virker dette subscription script ikke mere, da det nok er skrevet til CDONTS.
Hvis det har virket med CDONTS så det vil bare koden som skal tilpasses :)
Prøv at rette:
case "jmail" Set objNewMail = Server.CreateObject("Jmail.smtpmail") objNewMail.ServerAddress = strMailServer objNewMail.AddRecipient strRecipients objNewMail.Sender = strSender objNewMail.Subject = strSubject objNewMail.body = strMessage objNewMail.priority = 3 on error resume next '## Ignore Errors objNewMail.execute If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if case "smtp"
Til dette:
case "jmail" emailArr = Split(strRecipients,";") for i = 0 to ubound(emailArr) Set objNewMail = Server.CreateObject("Jmail.smtpmail") objNewMail.ServerAddress = strMailServer objNewMail.AddRecipient emailArr(i) objNewMail.Sender = strSender objNewMail.Subject = strSubject objNewMail.body = strMessage objNewMail.priority = 3 on error resume next '## Ignore Errors objNewMail.execute If Err <> 0 Then Err_Msg = Err_Msg & "<li>Din mail er ikke sendt pågrund af følgende fejl: " & Err.Description & "</li>" End if Next case "smtp"
Såfremt jeg kun tilmelder 'en bruger til et forum, spledes at der kun skal udsendes 'en mail, så virker det fint. Men tilmelder jeg bruger nr. 2 så kommer der slet ikke noget ud. Så selve JMAIL udsendingen fra hosten virker fint også i andre sammenhæng på sitet. Der ER når dette script skal behandle flere brugere det går galt. Det har virker perfekt i 2 mdr. men med CDONTS komponenten.
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.