| 
        
          | 
              
                | Author |  Topic  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 06 October 2003 :  21:39:07   
 |  
                      | Hi, 
 I am trying to configure ASPPop3 component thats installed on our Kiwihosting.net server to retrieve emails from our mail server and then take some data from the email and store it in the database. First off I just want to get the thing to open my emails. Here is the "How To" bit from their website at http://www.serverobjects.com/comp/Asppop3.htm :
 
 [script]
 The following code demonstrates how to use AspPOP3 from VBScript.
 
 Set Mailer = Server.CreateObject("POP3svg.Mailer")
 Mailer.RemoteHost = "mailhost.localisp.net"
 Mailer.UserName   = "myname"
 Mailer.Password   = "mypassword"
 Mailer.MailDirectory = "d:\usermail\myname"
 Mailer.OpenPop3
 
 rem We could do multiple retrieves here but this demo only shows the
 rem  selected message.
 
 
 Mailer.MailDirectory = "d:\usermail\myname"
 Mailer.RetrieveToFile 1, "1.txt"
 Mailer.ClosePop3
 
 The file d:\usermail\myname\1.txt now holds the complete message text for this message. You could optionally do the following:
 
 Set Mailer = Server.CreateObject("POP3svg.Mailer")
 Mailer.RemoteHost = "mailhost.localisp.net"
 Mailer.UserName   = "myname"
 Mailer.Password   = "mypassword"
 Mailer.OpenPop3
 
 rem We could do multiple retrieves here but this demo only shows the
 rem  selected message.
 
 
 Mailer.Retrieve 1
 Mailer.ClosePop3
 
 You can now use Mailer's properties to examine each part of the message
 [/script]
 
 So I came up with this, to get the email and display the body:
 
 [script]
 <%
 Set Mailer = Server.CreateObject("POP3svg.Mailer")
 Mailer.RemoteHost = "mail.domainname.co.nz"
 Mailer.UserName   = "username@domainname.co.nz"
 Mailer.Password   = "password"
 Mailer.OpenPop3
 
 
 Mailer.Retrieve 1
 Response.Write "This message is " & _
 Mailer.BodyText
 Mailer.ClosePop3
 
 %>
 [/script]
 
 (NOTE: I tried "username@domain.co.nz" and "username" both as the Mailer.UserName)
 
 I stuck that in notepad, saved the asp file, uploaded it to my server, sent a test email, waited a bit then executed the file. But all it displayed was This message is. Has anyone had experience with this and can help me out a bit here please.
 
 What I eventually want to do is have this script check for emails, and if they have a certain subject line, extract various bits of data to my database, if not, ignore it.
 |  |  
                | Doug GSupport Moderator
 
      
 
                USA6493 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  02:30:29   
 |  
                      | Mailer.open should have a return value available to let you know if you connected to the pop server successfully.  I'm not familiar with this component but somewhere there must be a way to know that you've connected and logged on OK. 
 |  
                      | ======
 Doug G
 ======
 Computer history and help at www.dougscode.com
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  19:00:53   
 |  
                      | I had a look at their site and there doesn't seem to be any... |  
                      | Cheers,
 WeeVaa.
 
 
 |  
                      |  |  |  
                | Doug GSupport Moderator
 
      
 
                USA6493 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  19:39:22   
 |  
                      | I have used JMail POP3 and AdminSystem.Net POP3, both of those controls provide a connection status when you log on the pop server.  I don't know about the control you're using, but my guess is you are not getting connected which is why you get no message text. 
 
 |  
                      | ======
 Doug G
 ======
 Computer history and help at www.dougscode.com
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  20:17:28   
 |  
                      | OK, we have W3 Jmail component installed on our server (we are using kiwihosting.net). Do you have any sample code for Jmail that would simply display the email on screen (or even better, extract stuff from the body and put it in the database  ). |  
                      | Cheers,
 WeeVaa.
 
 
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  21:17:20   
 |  
                      | I have found this script for JMail, but it just displays a blank screen. I have tried all combinations of username, username@domain.com, localhost, mail.domain.com and all that. But still just a blank screen. 
 
 
<%
Function GetPopMail(ByVal usr, ByVal pass, ByVal mailserver, _
    ByVal mailport, byVal bShowHeaders)
	'declare variables
	Dim pop, headers, i, messages, ct, message
	'create jmail pop3 object
	Set pop = CreateObject("JMail.POP3")
	
	'connect to account
	pop.Connect username, password, localhost, 110
	'download mail headers
	pop.DownloadHeaders
	'download mail messages
	pop.DownloadMessages
	'get handle to the messages object
	Set messages = pop.Messages
	'count of messages retrieved
	ct = messages.count - 1
	'if there's messages...
	if ct >= 1 then
		'loop through messages
		for i = 1 to ct
			'get handle to message object
			Set message = messages.item(i)
			'show headers or whole email...
			if bShowHeaders then
				'print header
				Response.Write( message.Text & "<BR><BR>")
			else
				'print subject and body
				Response.Write( "<B>" & _
                                    message.subject & "</B><BR>" )
				Response.Write( message.body & _
                                    "<BR><BR>" )
			end if
			'free message handle
			Set message = nothing
		next
	else
		'no messages
		Response.Write( "no messages on " & mailserver )
	end if
	'disconnect from server
	pop.disconnect
	'release messages handle
	Set messages = Nothing
	'free jmail pop3 object
	Set pop = Nothing
End Function
%>
 |  
                      | Cheers,
 WeeVaa.
 
 
 |  
                      |  |  |  
                | Doug GSupport Moderator
 
      
 
                USA6493 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  22:00:02   
 |  
                      | I don't have JMail code handy right now, and I guess I need some kind of login now to get to their documentation on the website.  I remember checking for a message count after connecting, something like count=pop.count 
 Try putting a couple selective response.writes in your code for debugging, such as response.write "Count is: " & ct
 
 
 
 |  
                      | ======
 Doug G
 ======
 Computer history and help at www.dougscode.com
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  22:51:00   
 |  
                      | I edited the script like so, to include a few response writes to show me where it got up to: 
 
 
<%
response.write "begin"
%>
<%
Function GetPopMail(ByVal usr, ByVal pass, ByVal mailserver, _
    ByVal mailport, byVal bShowHeaders)
	'declare variables
	Dim pop, headers, i, messages, ct, message
response.write "connecting"
	'create jmail pop3 object
	Set pop = CreateObject("JMail.POP3")
	
	'connect to account
	pop.Connect username, password, mail.server.co.nz, 110
response.write "connected"
	'download mail headers
	pop.DownloadHeaders
	'download mail messages
	pop.DownloadMessages
	'get handle to the messages object
	Set messages = pop.Messages
	'count of messages retrieved
	ct = messages.count - 1
	response.write "Count is: " & ct
	'if there's messages...
	if ct >= 1 then
		'loop through messages
		for i = 1 to ct
			'get handle to message object
			Set message = messages.item(i)
			'show headers or whole email...
			if bShowHeaders then
				'print header
				Response.Write( message.Text & "<BR><BR>")
			else
				'print subject and body
				Response.Write( "<B>" & _
                                    message.subject & "</B><BR>" )
				Response.Write( message.body & _
                                    "<BR><BR>" )
			end if
			'free message handle
			Set message = nothing
		next
	else
		'no messages
		Response.Write( "no messages on " & mailserver )
	end if
	'disconnect from server
	pop.disconnect
	response.write "disconnected"
	'release messages handle
	Set messages = Nothing
	'free jmail pop3 object
	Set pop = Nothing
End Function
%>
 But all it displays is "begin", and none of the others that are actually in the script. That would indicate the script isn't working. Have you tested the above code on your server?
 |  
                      | Cheers,
 WeeVaa.
 
 
 |  
                      |  |  |  
                | NikkolForum Moderator
 
      
 
                USA6907 Posts
 |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  23:03:42   
 |  
                      | Oh. So how do I do that  
 |  
                      | Edited by - eggyfarts on 07 October 2003  23:05:29
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 07 October 2003 :  23:49:25   
 |  
                      | I changed the code to this, and it works except I'm getting this error: 
 Microsoft VBScript compilation error '800a0408'
 
 Invalid character
 
 /pop3.asp, line 4
 
 MyUsername= username@server.co.nz
 
 
 I need the @ symbol because if I just put "username", I can't login, it has to be "username@domain.co.nz". Is there a way to get around this?
 
 Here is the re-worked code.
 
 
<%
response.write "begin"
MyUsername= username@server.co.nz
MyPassword = password
Mailserver = mail.server.co.nz
%>
<%
Function GetPopMail
	'declare variables
	Dim pop, headers, i, messages, ct, message
response.write "connecting"
	'create jmail pop3 object
	Set pop = CreateObject("JMail.POP3")
	
	'connect to account
	pop.Connect MyUsername, MyPassword, Mailserver
response.write "connected"
	'download mail headers
	pop.DownloadHeaders
	'download mail messages
	pop.DownloadMessages
	'get handle to the messages object
	Set messages = pop.Messages
	'count of messages retrieved
	ct = messages.count - 1
	response.write "Count is: " & ct
	'if there's messages...
	if ct >= 1 then
		'loop through messages
		for i = 1 to ct
			'get handle to message object
			Set message = messages.item(i)
			'show headers or whole email...
			if bShowHeaders then
				'print header
				Response.Write( message.Text & "<BR><BR>")
			else
				'print subject and body
				Response.Write( "<B>" & _
                                    message.subject & "</B><BR>" )
				Response.Write( message.body & _
                                    "<BR><BR>" )
			end if
			'free message handle
			Set message = nothing
		next
	else
		'no messages
		Response.Write( "no messages on " & mailserver )
	end if
	'disconnect from server
	pop.disconnect
	response.write "disconnected"
	'release messages handle
	Set messages = Nothing
	'free jmail pop3 object
	Set pop = Nothing
End Function
%>
<%= GetPopMail %>
 |  
                      | Cheers,
 WeeVaa.
 
 
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 08 October 2003 :  00:54:02   
 |  
                      | OK, its sorted now, they had to be inclosed in quotes. |  
                      | Cheers,
 WeeVaa.
 
 
 |  
                      |  |  |  
                | eggyfartsJunior Member
 
   
 
                New Zealand200 Posts
 | 
                    
                      |  Posted - 08 October 2003 :  01:57:27   
 |  
                      | OK, here is my new and improved code, its all working, it connects to the server and displays the email: 
 
 
<% @LANGUAGE=VBSCRIPT %>
<% 
Set pop3 = Server.CreateObject( "JMail.POP3" )
pop3.Connect "username@server.com", "password", "mail.server.com"
Response.Write( "You have " & pop3.count & " emails in your mailbox!<br><br>" )
if pop3.count > 0 then
Set msg = pop3.Messages.item(1) 
%>
<html>
<body>
<TABLE>
 <tr>
  <td>Subject</td>
  <td><%= msg.Subject %></td>
 </tr>
 <tr>
  <td>From</td>
  <td><%= msg.FromName %></td>
 </tr>
 <tr>
  <td>Body</td>
  <td><pre><%= msg.Body %></pre></td>
 </tr>
</TABLE>
</body>
</html>
<%
end if
pop3.Disconnect
%>
 
 Now that all thats sorted, what I want to do is this. Have this script check the server for emails, if there are no emails on the server, simply disconnect. If there are emails, then download the headers for them. Then check the first email, if the subject matches the preset subject variable then keep going and download the message body as well, if not, go on to the next message.
 
 When it finds a message with a particular subject line, I want it to look at the body, and extract a few things to the database and then delete the email, and keep going with the search, then when all messages are read, disconnect.
 
 All the emails I want to look at will be in the same format, with the same subject line. The body format will be:
 
 Your auction for "Title of Auction"
 (auction no. 1234567) has finished. The auction passed your reserve price
 and has successfully sold.
 
 The details of the winning bid are:
 AMOUNT:   $265.00
 TOP BIDDER:   SomePerson
 EMAIL:   mailto:Someperson@server.com
 
 
 What I want to do is extract the amount of the bid and the bidders email address, as well as the 7 number "auction no." to my database, to be used later on. I am stuck as to go about the first part (well actually the whole thing), which is getting the script to check for emails and stop when it finds one that matches the subject line.
 
 I have found a google cached site that explains what each thing in JMail.POP3 does, URL copy + paste from below (its a large url!), but my skills aren't too great. Can anyone out there help me with this?
 TIA for any help at all.
 
 URL: http://216.239.57.104/search?q=cache:JPd1dkAuHGEJ:www.duplo.se/files/pdf/w3_JMail4_REF.pdf+jmail.pop3+asp+DeleteSingleMessage&hl=en&ie=UTF-8#2
 |  
                      |  |  |  
                |  |  Topic  |  |  |  |