Avatar billede pnr Nybegynder
21. februar 2003 - 11:35 Der er 23 kommentarer og
1 løsning

Sende en mail til flere

Kan jeg lave en knap som når man trykker på den, starter en ny mail i det program man bruger til mails (lotus notes).

De personer der skal modtage mailen skal hentes i en database og ligges i feltet BCC.
Avatar billede soes Nybegynder
21. februar 2003 - 16:57 #1
<%
Sql = "SELECT bcc FROM email"

Set Rs = Conn.Execute(Sql)

Do While NOT Rs.EOF
strBcc = strBcc & Rs("bcc") & ","
Rs.MoveNext
Loop
strBcc = Left(strBcc, (Len(strBcc) - 1))
%>

<html>
<body>
<form method='post' action='mailto:my@mail.com&body=test&subject=testing&bcc="& strBcc &"'>
<input type='submit' value='Start paa ny mail'>
</form>
</body>
</html>
Avatar billede soes Nybegynder
21. februar 2003 - 16:58 #2
det er kun et forslag, tror at det virker :o)
Avatar billede pnr Nybegynder
21. februar 2003 - 17:31 #3
det kan jeg ikke få til at virke
Avatar billede soes Nybegynder
21. februar 2003 - 17:47 #4
jeg ved at dette virker i ie.
proev evt. at tage html delen og start din browser tryk paa knappen og se hvad der sker
Avatar billede soes Nybegynder
21. februar 2003 - 17:49 #5
dette skal jo lige rettes:
form method='post' action='mailto:my@mail.com&body=test&subject=testing&bcc=<%= strBcc %>'>

og asp del er jo ikke komplet men det har du vel regnet ud :)
Du skal selv angive stien til din db samt den rigtige tabel samt kollonne
Avatar billede mortrr Praktikant
21. februar 2003 - 19:37 #6
Kan man overhovedet det med Notes klienten?

Den sidste notes jeg havde fat i, kunne kun genkende simple mailto: links. Og ikke ekstra parametre.

Men hvis man kan, så soes' kode lidt omskrevet:
<%
Sql = "SELECT mailAdresser FROM personer"
Set Rs = Conn.Execute(Sql)  'Conn er din database-connection
strBCC=
Do While NOT Rs.EOF
strBcc = strBcc & Rs("bcc") & ";"
Rs.MoveNext
Loop
strBcc = Left(strBcc, (Len(strBcc) - 1))
%>
<html>
<body>
<a href="mailto:mig@adresse.dk?bcc=<%=strBCC%>&subject=Overskrift&Body=Tekst til beskeden">Send</a>
</body>
</html>

Hvis det er på et intranet, kunne du installere NotesSQL, og bruge ADO på klienten (eller serveren) til at oprette mails.

- Morten
Avatar billede pnr Nybegynder
22. februar 2003 - 11:51 #7
Har i et forslag til en alternativ løsning?

Det skal bruges via internettet, og det skal være muligt at sende en mail til de adresser der ligger i en database. Dvs at hvis ikke man kan det ovenstående, så kunne man måske lave så man downloaded en kommaseparetet fil med alle email adresserne, men kan man nemt bruge den i lotus notes (jeg bruger ikke selv lotus, så jeg ved ikke så meget om det).
Avatar billede mortrr Praktikant
22. februar 2003 - 13:20 #8
Hvorfor så overhovedet bringe notes ind i det så?

Installer fx jmail (freeware fra www.dimac.net) på webserveren (den du har asp-filen på), og brug den til at sende mails.
Der ligger flere gode eksempler på deres website.
http://www.dimac.net/websites/dimac/website/products/w3JMail/

Et hurtige eksempel. Først en formular til at skrive indholdet af mailen.

Lad os kalde den mailform.htm:
<html><body><form action="sendmail.asp" method=post>
subject: <input type="text" name="subject" size=40>
<p>Body:<br><textarea name="Body" cols=30 rows=10></textarea>
<p><input type="submit" name="bSubmit" value="Send">
</form></body></html>

og sendmail.asp:
<%@LANGUAGE = VBSCRIPT%> <html>
<body><%

set msg = Server.CreateOBject( "JMail.Message" )
msg.Logging = true
msg.Silent = true

msg.From = "DinAdresse@domain.dk"
msg.FromName = "Dit navn"

msg.AddRecipient "DinAdresse@domain.dk", "Dit Navn"

Sql = "SELECT mailAdresse FROM personer WHERE MailAdresse is not null"
Set Rs = Conn.Execute(Sql)  'Conn er din database-connection
Do While NOT Rs.EOF
  msg.AddRecipientBCC cStr(rs("mailAdresse").Value)
  Rs.MoveNext
Loop

msg.Subject = Request.Form("Subject")
msg.Body = Request.Form("Body")

if not msg.Send("mailserver.domain.dk" ) then
    Response.write "<br>" & msg.log
else
    Response.write "Beskeden blev sendt"
end if
%></body>
</html>

- Morten
Avatar billede pnr Nybegynder
22. februar 2003 - 15:16 #9
Den mulighed har jeg også overvejet, men dem jeg laver applikationen for vil kunne sende fra lotus notes. Kan det lade sig gøre med den fil som jeg forslår
Avatar billede mortrr Praktikant
22. februar 2003 - 15:30 #10
"Vil kunne sende fra Lotus Notes" - Den eneste årsag jeg lige kan komme i tanke om, er at de vil have registret i lotus notes at de har sendt en mail.

Hmmm - Så skal du faktisk bare lave en semikolon separaret liste som de kopierer ind i deres BCC felt.
Så udfylder de selv resten af mailen og trykker send.

<%
Sql = "SELECT mailAdresse FROM personer WHERE mailAdresse is not null"
Set Rs = Conn.Execute(Sql)  'Conn er din database-connection
strBCC=""
Do While NOT Rs.EOF
strBcc = strBcc & Rs("mailAdresse") & ";"
Rs.MoveNext
Loop
strBcc = Left(strBcc, (Len(strBcc) - 1))
%>
<html>
<body>
Kopier nedenstående til bcc feltet i en mail:<p>
<%=strBCC%></body>
</html>

(ser lige nogle grove bummerter i den kode jeg skrev tidligere, med at lave et bcc-maillink - uf)

Men prøv nu lige først om notes klienten ikke skulle have lært at et mailto link også kan indeholde andet end en mail-adresse.

<html>
<body>
<a href="mailto:mig@adresse.dk?bcc=blind@adresse.dk&subject=Overskrift&Body=Tekst til beskeden">Send mail</a>
</body>
</html>

- Morten
Avatar billede pnr Nybegynder
24. februar 2003 - 15:58 #11
Er der mulighed for at kalde den mailto funktion fra asp?
Avatar billede mortrr Praktikant
24. februar 2003 - 16:17 #12
Mja - det er vel egenligt det man gør i det eksempel med jmail.

Men så registreres der jo ikke noget i Notes.

Men man kunne jo sende Notes brugeren en kopi.

- Morten
Avatar billede pnr Nybegynder
24. februar 2003 - 17:26 #13
Nej jeg mener om jeg kan kalde "mailto:mig@adresse.dk?bcc=blind@adresse.dk&subject=Overskrift&Body=Tekst til beskeden"

Jeg har en side hvor der er forskellige ting man kan, en af dem er at sende en mail til dem der ligger i databasen, så når man trykker på knappen for dette, submitter formen, hvorefter der laves en modtager liste, og derefter skal den poppe op.
Avatar billede mortrr Praktikant
24. februar 2003 - 17:40 #14
Nåååhhh. (siger han som om han har forstået det)

Som fx:
<%
Sql = "SELECT mailAdresse FROM personer"
Set Rs = Conn.Execute(Sql)  'Conn er din database-connection
strBCC=""
Do While NOT Rs.EOF
strBcc = strBcc & Rs("mailAdresse") & ";"
Rs.MoveNext
Loop
strBcc = Left(strBcc, (Len(strBcc) - 1))
%>
<html>
<script>
function ClickLink(linkID) {
  if (document.all) {
    document.all(linkID).click();
    return true;
  }
  if (document.getElementById) {
    document.getElementById(linkID).click();
    return true;
  }
}
</script>
<body onload="ClickLink('linket')">
<a id="linket" href="mailto:mig@adresse.dk?bcc=<%=strBCC%>&subject=Overskrift&Body=Tekst til beskeden">Send</a>
</body>
</html>

- Morten
Avatar billede pnr Nybegynder
24. februar 2003 - 18:22 #15
Ja det kunne jeg jo selvfølgelig gøre.

For lige at være vansklig kan man så ikke kalde den funktion (mailto) direkte i asp koden?

Smid lige et svar så jeg kan give dig nogle meget velfortjente point!
Avatar billede mortrr Praktikant
24. februar 2003 - 19:22 #16
Jo - det kunne man vel egentligt, men det bliver på en måde som vil give flere problemer.

Du kan lave en redirect til mailto.
mailtoredir.asp:
<%@language=vbscript%><%
Response.Expires=-1
Response.CacheControl="no-cache"

mail=cStr(Request("mail"))
mail1=cStr(Request("mail1"))
if mail<>"" then
  if mail1="" then
    Response.Redirect("mailto:"+mail+"?subject=Hejsa")
  else
    Response.Redirect("mailto:"+mail+"?bcc="+mail1+"&subject=Hejsa")
  end if
end if

%>
<form action="mailtoredir.asp">
<input name="mail" value="">
<br><input name="mail1" value="">
<br><input type="submit" value="send">
</form>

Men så står du bare med en "tom" browser bagved, som du ikke kan ændre indhold i.

- Morten
Avatar billede pnr Nybegynder
24. februar 2003 - 20:55 #17
Skal der stå noget i feltet "til". Kan man ikke undgå at skrive noget der.
eks mailto:bcc="+mail+"
Avatar billede mortrr Praktikant
24. februar 2003 - 21:36 #18
Hvis det er Outlook, så nej.
Så skriver du linket som:
mailto:?bcc="+mail+"
Avatar billede mortrr Praktikant
24. februar 2003 - 21:36 #19
Altså "Nej" til "Skal der stå noget i feltet "til"."

- Morten
Avatar billede pnr Nybegynder
24. februar 2003 - 21:48 #20
Det kan jeg ikke få til at virke med outlook!
Avatar billede mortrr Praktikant
24. februar 2003 - 21:53 #21
Hvis det er den med redirect, så virker følgende i min outlook:
<%@language=vbscript%><%
Response.Expires=-1
Response.CacheControl="no-cache"

mail=cStr(Request("mail"))
mail1=cStr(Request("mail1"))
if mail<>"" then
  if mail1="" then
    Response.Redirect("mailto:?cc="+mail+"&subject=Hejsa")
  else
    Response.Redirect("mailto:?cc="+mail+"&bcc="+mail1+"&subject=Hejsa")
  end if
end if

%>
<form action="mailtoredir.asp">
<input name="mail" value="">
<br><input name="mail1" value="">
<br><input type="submit" value="send">
</form>

Og det er Outlook, ikke Outlook Express.

- Morten
Avatar billede pnr Nybegynder
25. februar 2003 - 06:22 #22
Jeg syntes ikke at jeg kan undgå at der står noget i feltet "til". Deteneste sted jeg skal indsætte data er i feltet BCC, resten er op til brugeren.
Avatar billede pnr Nybegynder
25. februar 2003 - 09:32 #23
Så er der problemmer! Hvis jeg har mere end 100 email adresser i min liste virker det ikke!
Avatar billede mortrr Praktikant
25. februar 2003 - 16:09 #24
Du bør altså bruge en metode hvor det er serveren der afsender mails.
Enten gemmel lotussql eller fx jmail, når det er så mange mails.

Men ellers kunne du bruge den med jscriptet det klikker på linket. Så skal der bare være mere end 1 link der så åbner 2,3 eller flere mails.

- Morten
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