Avatar billede bms Nybegynder
20. april 2001 - 11:39 Der er 27 kommentarer og
1 løsning

Jmail 4 - pop3

Hej - er der nogen der har et kode-eksempel på hvordan man tjekker sin pop3 med jmail4?
Avatar billede netsrac Praktikant
20. april 2001 - 19:20 #1
<% @LANGUAGE=VBSCRIPT %>
<%

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"username\", \"password\", \"mail.mydomain.com\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 0 then
Set msg = pop3.Messages.item(1)

\' Note the first element of this array is 1
\' since the POP3 server starts counting at 1
ReTo = \"\"
ReCC = \"\"

Set Recipients = msg.Recipients
separator = \", \"

\' We now need to get all the recipients,
\' both normal and Carbon Copy (CC) recipients
\' and store them in a variabel

For i = 0 To Recipients.Count - 1
  If i = Recipients.Count - 1 Then
    separator = \"\"
  End If

  Set re = Recipients.item(i)
  If re.ReType = 0 Then
    ReTo = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  else
    ReCC = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  End If
Next

\' This function iterates through the Attachments object,
\' and saves the attachment to the server\'s disk.
\' It also returns a nicely formatted string with a
\' link to the attachment.
Function getAttachments()
  Set Attachments = msg.Attachments
  separator = \", \"

  For i = 0 To Attachments.Count - 1
    If i = Attachments.Count - 1 Then
      separator = \"\"
    End If

  Set at = Attachments(i)
  at.SaveToFile( \"c:\\attachments\\\" & at.Name )
  getAttachments = getAttachments & \"<a href=\"\"/attachments/\" &_
  at.Name &\"\"\">\" & at.Name & \"(\" & at.Size & \" bytes)\" &_
  \"</a>\" & separator
  Next
End Function

%>
<html>
<body>
<TABLE>
<tr>
  <td>Subject</td>
  <td><%= msg.Subject %></td>
</tr>
<tr>
  <td>From</td>
  <td><%= msg.FromName %></td>
</tr>
<tr>
  <td>Recipients To</td>
  <td><%= ReTO %></td>
</tr>
<tr>
  <td>Recipients CC</td>
  <td><%= ReCC %></td>
</tr>
<tr>
  <td>Attachments</td>
  <td><%= getAttachments %></td>
</tr>
<tr>
  <td>Body</td>
  <td><pre><%= msg.Body %></pre></td>
</tr>
</TABLE>
</body>
</html>
<%

end if

pop3.Disconnect

%>

Avatar billede bms Nybegynder
21. april 2001 - 08:41 #2
Fornemt - jeg kan dog ikke lige gennemskue hvordan den viser flere mails. Eksempel - jeg har 3 mail i min inbox - den viser kun den første.

Ved du hvordan man får det angivet? + Hvis du kan forklare (hvis du altså ved det) hvordan man kan slette sine mails online vil jeg meget gerne høre om det også.

Endelig vil jeg gerne have et tip om hvor du har fundet koden - er det en how-to eller faq side om netop det?

Hvis du kan klare de 3 ting :
- vise flere mails (evt. ved et \"Tryk her for næste mail\"-link
- kunne slette mails
- Url til siden med faq (eller hvad det nu er)

afsætter jeg endnu 50 point - 100 ialt.

Avatar billede netsrac Praktikant
21. april 2001 - 12:47 #3
Alle mails i boksen:

<% @LANGUAGE=VBSCRIPT %>
<%

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"username\", \"password\", \"mail.mydomain.com\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 0 then

for i = 1 to (pop3.count - 1)

Set msg = pop3.Messages.item(i)

\' Note the first element of this array is 1
\' since the POP3 server starts counting at 1
ReTo = \"\"
ReCC = \"\"

Set Recipients = msg.Recipients
separator = \", \"

\' We now need to get all the recipients,
\' both normal and Carbon Copy (CC) recipients
\' and store them in a variabel

For i = 0 To Recipients.Count - 1
  If i = Recipients.Count - 1 Then
    separator = \"\"
  End If

  Set re = Recipients.item(i)
  If re.ReType = 0 Then
    ReTo = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  else
    ReCC = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  End If
Next

\' This function iterates through the Attachments object,
\' and saves the attachment to the server\'s disk.
\' It also returns a nicely formatted string with a
\' link to the attachment.
Function getAttachments()
  Set Attachments = msg.Attachments
  separator = \", \"

  For i = 0 To Attachments.Count - 1
    If i = Attachments.Count - 1 Then
      separator = \"\"
    End If

  Set at = Attachments(i)
  at.SaveToFile( \"c:\\attachments\\\" & at.Name )
  getAttachments = getAttachments & \"<a href=\"\"/attachments/\" &_
  at.Name &\"\"\">\" & at.Name & \"(\" & at.Size & \" bytes)\" &_
  \"</a>\" & separator
  Next
End Function

%>
<html>
<body>
<TABLE>
<tr>
  <td>Subject</td>
  <td><%= msg.Subject %></td>
</tr>
<tr>
  <td>From</td>
  <td><%= msg.FromName %></td>
</tr>
<tr>
  <td>Recipients To</td>
  <td><%= ReTO %></td>
</tr>
<tr>
  <td>Recipients CC</td>
  <td><%= ReCC %></td>
</tr>
<tr>
  <td>Attachments</td>
  <td><%= getAttachments %></td>
</tr>
<tr>
  <td>Body</td>
  <td><pre><%= msg.Body %></pre></td>
</tr>
</TABLE>
</body>
</html>
<%

next
end if

pop3.Disconnect

%>
Avatar billede netsrac Praktikant
21. april 2001 - 12:50 #4
Alle mails i boksen + sletning:

<% @LANGUAGE=VBSCRIPT %>
<%

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"username\", \"password\", \"mail.mydomain.com\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 0 then

for i = 1 to (pop3.count - 1)

Set msg = pop3.Messages.item(i)

\' Note the first element of this array is 1
\' since the POP3 server starts counting at 1
ReTo = \"\"
ReCC = \"\"

Set Recipients = msg.Recipients
separator = \", \"

\' We now need to get all the recipients,
\' both normal and Carbon Copy (CC) recipients
\' and store them in a variabel

For i = 0 To Recipients.Count - 1
  If i = Recipients.Count - 1 Then
    separator = \"\"
  End If

  Set re = Recipients.item(i)
  If re.ReType = 0 Then
    ReTo = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  else
    ReCC = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  End If
Next

\' This function iterates through the Attachments object,
\' and saves the attachment to the server\'s disk.
\' It also returns a nicely formatted string with a
\' link to the attachment.
Function getAttachments()
  Set Attachments = msg.Attachments
  separator = \", \"

  For i = 0 To Attachments.Count - 1
    If i = Attachments.Count - 1 Then
      separator = \"\"
    End If

  Set at = Attachments(i)
  at.SaveToFile( \"c:\\attachments\\\" & at.Name )
  getAttachments = getAttachments & \"<a href=\"\"/attachments/\" &_
  at.Name &\"\"\">\" & at.Name & \"(\" & at.Size & \" bytes)\" &_
  \"</a>\" & separator
  Next
End Function

%>
<html>
<body>
<TABLE>
<tr>
  <td>Subject</td>
  <td><%= msg.Subject %></td>
</tr>
<tr>
  <td>From</td>
  <td><%= msg.FromName %></td>
</tr>
<tr>
  <td>Recipients To</td>
  <td><%= ReTO %></td>
</tr>
<tr>
  <td>Recipients CC</td>
  <td><%= ReCC %></td>
</tr>
<tr>
  <td>Attachments</td>
  <td><%= getAttachments %></td>
</tr>
<tr>
  <td>Body</td>
  <td><pre><%= msg.Body %></pre></td>
</tr>
</TABLE>
</body>
</html>
<%
\'Her sletter vi mailen!!
pop3.DeleteSingleMessage(i)

next
end if

pop3.Disconnect

%>
Avatar billede netsrac Praktikant
21. april 2001 - 12:51 #5
Dokumentationen finder du hos producenten, som er Dimac. http://tech.dimac.net
Avatar billede bms Nybegynder
21. april 2001 - 13:13 #6
Dine sidste 2 halter desværre:

Invalid \'for\' loop control variable

/upload/mail3.asp, line 28

For i = 0 To Recipients.Count - 1

Avatar billede netsrac Praktikant
21. april 2001 - 13:29 #7
<% @LANGUAGE=VBSCRIPT %>
<%
Function getAttachments()
  Set Attachments = msg.Attachments
  separator = \", \"

  For i = 0 To Attachments.Count - 1
    If i = Attachments.Count - 1 Then
      separator = \"\"
    End If

  Set at = Attachments(i)
  at.SaveToFile( \"c:\\attachments\\\" & at.Name )
  getAttachments = getAttachments & \"<a href=\"\"/attachments/\" &_
  at.Name &\"\"\">\" & at.Name & \"(\" & at.Size & \" bytes)\" &_
  \"</a>\" & separator
  Next
End Function

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"admin@cnh.dk\", \"beq43eft\", \"mail.cnh.dk\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 1 then

for a = 1 to pop3.count

Set msg = pop3.Messages.item(a)

\' Note the first element of this array is 1
\' since the POP3 server starts counting at 1
ReTo = \"\"
ReCC = \"\"

Set Recipients = msg.Recipients
separator = \", \"

\' We now need to get all the recipients,
\' both normal and Carbon Copy (CC) recipients
\' and store them in a variabel

For i = 0 To Recipients.Count - 1
  If i = Recipients.Count - 1 Then
    separator = \"\"
  End If

  Set re = Recipients.item(i)
  If re.ReType = 0 Then
    ReTo = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  else
    ReCC = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  End If
Next

\' This function iterates through the Attachments object,
\' and saves the attachment to the server\'s disk.
\' It also returns a nicely formatted string with a
\' link to the attachment.

%>
<html>
<body>
<TABLE>
<tr>
  <td>Subject</td>
  <td><%= msg.Subject %></td>
</tr>
<tr>
  <td>From</td>
  <td><%= msg.FromName %></td>
</tr>
<tr>
  <td>Recipients To</td>
  <td><%= ReTO %></td>
</tr>
<tr>
  <td>Recipients CC</td>
  <td><%= ReCC %></td>
</tr>
<tr>
  <td>Attachments</td>
  <td><%= getAttachments %></td>
</tr>
<tr>
  <td>Body</td>
  <td><pre><%= msg.Body %></pre></td>
</tr>
</TABLE>
</body>
</html>
<%
\'Her sletter vi mailen!!
pop3.DeleteSingleMessage(a)

next
end if

pop3.Disconnect

%>

Avatar billede netsrac Praktikant
21. april 2001 - 13:35 #8
<% @LANGUAGE=VBSCRIPT %>
<%
Function getAttachments()
  Set Attachments = msg.Attachments
  separator = \", \"

  For i = 0 To Attachments.Count - 1
    If i = Attachments.Count - 1 Then
      separator = \"\"
    End If

  Set at = Attachments(i)
  at.SaveToFile( \"c:\\attachments\\\" & at.Name )
  getAttachments = getAttachments & \"<a href=\"\"/attachments/\" &_
  at.Name &\"\"\">\" & at.Name & \"(\" & at.Size & \" bytes)\" &_
  \"</a>\" & separator
  Next
End Function

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"brugernanv\", \"password\", \"mail.domian.dk\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 1 then

for a = 1 to pop3.count

Set msg = pop3.Messages.item(a)

\' Note the first element of this array is 1
\' since the POP3 server starts counting at 1
ReTo = \"\"
ReCC = \"\"

Set Recipients = msg.Recipients
separator = \", \"

\' We now need to get all the recipients,
\' both normal and Carbon Copy (CC) recipients
\' and store them in a variabel

For i = 0 To Recipients.Count - 1
  If i = Recipients.Count - 1 Then
    separator = \"\"
  End If

  Set re = Recipients.item(i)
  If re.ReType = 0 Then
    ReTo = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  else
    ReCC = ReTo & re.Name & \"&nbsp;(\" & re.EMail & \")\" & separator
  End If
Next

\' This function iterates through the Attachments object,
\' and saves the attachment to the server\'s disk.
\' It also returns a nicely formatted string with a
\' link to the attachment.

%>
<html>
<body>
<TABLE>
<tr>
  <td>Subject</td>
  <td><%= msg.Subject %></td>
</tr>
<tr>
  <td>From</td>
  <td><%= msg.FromName %></td>
</tr>
<tr>
  <td>Recipients To</td>
  <td><%= ReTO %></td>
</tr>
<tr>
  <td>Recipients CC</td>
  <td><%= ReCC %></td>
</tr>
<tr>
  <td>Attachments</td>
  <td><%= getAttachments %></td>
</tr>
<tr>
  <td>Body</td>
  <td><pre><%= msg.Body %></pre></td>
</tr>
</TABLE>
</body>
</html>
<%
\'Her sletter vi mailen!!
pop3.DeleteSingleMessage(a)

next
end if

pop3.Disconnect

%>
Avatar billede bms Nybegynder
22. april 2001 - 16:47 #9
Ja ok... Jeg tænkte på - normalt ved databaseudtræk ville man eksempelvis fået vit en række linier med mails\'enes Emne - du ved i stil med:

19/04/2001 - Husk at sende noget...
18/04/2001 - Re: Support...

osv.

Kan man på den måde liste mails\'ene? Og evt. med en \"vismail.asp?id=<%=id%>\" få vist hver enkelt mail? Altså arbejde med mails\'ene som var de data i en database?
Avatar billede netsrac Praktikant
22. april 2001 - 16:53 #10
Hvis du kun vil vise emnerne kunne du jo gøre sådan her:

<% @LANGUAGE=VBSCRIPT %>
<%

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"brugernanv\", \"password\", \"mail.domian.dk\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 1 then

for a = 1 to pop3.count

Set msg = pop3.Messages.item(a)


%>
<html>
<body>
<%= msg.Subject %>
</body>
</html>
<%
\'Her sletter vi mailen!!
\'pop3.DeleteSingleMessage(a)

next
end if

pop3.Disconnect

%>

Ellers må du lave det sådan at alle mails først hentes ned i en database også hente data´ene derfra...
Avatar billede bms Nybegynder
22. april 2001 - 16:58 #11
aha - det nederste du nævner - er det en langsom process - altså tager det lang tid at hente dem ned i Databasen først for derefter at arbejde med dem?

Og hvordan gør man i øvrigt det?
Avatar billede netsrac Praktikant
22. april 2001 - 17:00 #12
Det er jo bare at løbe alle mails igennem som jeg gør i det andet sidste script, så gemmer du jo bare dataene med msg.Subject, msg.FromName osv...
Avatar billede bms Nybegynder
22. april 2001 - 17:04 #13
bær over med mig - jeg er newbie :-)

Jeg kan godt se logikken i det. Men aner ikke hvordan og hvorledes:
- alle mails skal skrives i databasen under samme \"gennemløbning\"
- de skal vel hver ha\' et post i tabellen Id osv.?
Avatar billede bms Nybegynder
22. april 2001 - 17:06 #14
det jeg mener er, at jeg kan sagtens finde ud af at en form med nogle data smides i en database. Men her skal de jo alle smides i - og det på een gang. Det er det der er lidt kringlet, men det er det måske ikke!?
Avatar billede netsrac Praktikant
22. april 2001 - 17:06 #15
Selvfølgelig skal de hver have en id i databasen, en post for hver email...
Avatar billede bms Nybegynder
22. april 2001 - 17:08 #16
netop! Ok - så har jeg da forstået det rigtigt. Har du et kode-eksempel liggende jeg kan se?
Avatar billede netsrac Praktikant
22. april 2001 - 17:10 #17
Eks:

<% @LANGUAGE=VBSCRIPT %>
<%
\'indsæt din connection til databasen her...
\'set conn...
\'conn.open...

Set pop3 = Server.CreateObject( \"JMail.POP3\" )

pop3.Connect \"brugernanv\", \"password\", \"mail.domian.dk\"

Response.Write( \"You have \" & pop3.count & \" emails in your mailbox!<br><br>\" )

if pop3.count > 1 then

for a = 1 to pop3.count

Set msg = pop3.Messages.item(a)



conn.execute(\"insert into tabel (subject, body) VALUES(\'\" & msg.Subject & \"\',\'\" & msg.Body & \"\')\")

\'Her sletter vi mailen!!
pop3.DeleteSingleMessage(a)

next
end if

pop3.Disconnect

conn.close
set conn = nothing
%>
Avatar billede bms Nybegynder
22. april 2001 - 18:07 #18
Hey - nu har jeg været gennem både dine eksempler og producentens sied - men jeg har ikke kunnet finde noget sted hvad afsenderens email skal angives som. I de eksempler du har - vises både navn på afsender og modtagers mail men ikke AFSENDERS mail! Jeg har prøvet lidt med:
<%= msg.FromEmail %>

Men det er det ikke! Ved du hvad det er?

Forresten - er det en \'bøvet\' måde at gøre det på - at smide mailsene ned i databasen først eller hvad synes du?
Avatar billede netsrac Praktikant
22. april 2001 - 18:11 #19
Den hedder vist msg.From

Næ det er en ganske udemærket måde at gøre det på, så er du også sikker på at pop3 serveren ikke skal belastes hele tiden...
Avatar billede bms Nybegynder
22. april 2001 - 19:15 #20
ok! Er ved at lave det med hvor jeg smider mails\'ene i databasen. Kan man smide en dato med i mailen? Er der en \"msg.Date\" eller sådan? (Og findes der egentligt et arkiv over alle disse kommandoer et eller andet sted?)

Det er selvfølgelig ikke nok at lave en RS(\"Dato\") = date, da den så bare vil smide den dato ned når jeg HENTER mailsene og smider dem i databasen. Det skal naturligvis være den dato da mailen blev modtaget på serveren!

PS: Jeg husker dem der hjælper mig - også point mæssigt. Og du har været mere end flink! Håber du kan hjælpe mig igen...
Avatar billede netsrac Praktikant
22. april 2001 - 19:26 #21
Avatar billede bms Nybegynder
23. april 2001 - 12:32 #22
Hej... Hmm... Ja, jeg har flere problemer, men det jeg sidder og roder med er flg.:

hvis man sender en mail fra en email adresse UDEN et \"msg.FromName\" (hvor man altså hedder fx noget@noget.dk) - så melder den fejl.

Med:

<% If \" & msg.FromName & \" = \"\" then
response.write \"N/A\"
else
response.write msg.From
end if
%>

skriver den mail-adressen - dvs. \"msg.FromName\" er IKKE tom - men der står bare ikke et navn (Peter Nielsen). Ved du hvad der så står hvis der ikke er et navn angivet?

Med:
<% If \" & msg.FromName & \" = \"\" then
response.write \"N/A\"
else
response.write msg.FromName
end if
%>

skriver den bare ingenting!
Avatar billede netsrac Praktikant
23. april 2001 - 15:36 #23
Kan du ikke bruge den sådan her ?
<% If msg.FromName  = \"\" then
response.write(msg.From)
else
response.write(msg.FromName & \" - \" & msg.From)
end if
%>

Avatar billede bms Nybegynder
23. april 2001 - 16:20 #24
Jo - men problemet er at hvis man får en mail fra noget@noget.dk og vedkommende IKKE har oplyst sit navn er msg.FromName jo tom.

Men hvis jeg gør sådan:

<% If \" & msg.FromName & \" = \"\" then
response.write \"N/A\"
else
response.write msg.FromName
end if
%>

vil den ved en mail UDEN msg.FromName skrive ingenting. Og altså IKKE \"N/A\". Ergo står der noget i vedkommendes msg.FromName - men hvad?!

(MEGET svært at forklare :-)
Avatar billede netsrac Praktikant
23. april 2001 - 18:41 #25
if len(msg.Fromname) <= 0 then
response.write \"N/A\"
else
response.write msg.Fromname
end if

Prøv det...
Avatar billede bms Nybegynder
07. maj 2001 - 17:04 #26
Tak for alles...
Avatar billede bms Nybegynder
07. maj 2001 - 17:04 #27
Smed 50 ekstra i
Avatar billede netsrac Praktikant
07. maj 2001 - 17:08 #28
Takker :-)
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