473,545 Members | 1,947 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Email - How to find out how many new Emails in POP server

Hi guys,

I am making a small program to retrieve e-mails from POP accounts. I got all
the e-mail parsing stuff figured out, but I cannot seem to come up with a way
to find out which e-mails are NEW so I don't have to retrieve them all. If
you have experience with this kind of thing, you know that the server creates
unique IDs for all the messages, but this IDs are not guaranteed to be
unique, since they can be reused once a message is deleted.
I wonder how Outlook checks for new messages... it happens very fast which
would indicate it is not really checking EVERY ID on its DB against the POP
server...

Any ideas?

Thank you in advance!

Juan Romero
-----------------------------------------
The successful person has the habit of doing the things failures don't like
to do.
E.M. Gray
Jul 22 '05 #1
4 1809
The simplest thing I would do is create an index of all the mail in the
user's mailbox.

Structure MailItem
FileName as string
IsRead as boolean
IsReplyTo as boolean
End Structure

Create a hashtable, store mailitem in it, used the message guid as the key.

Serialize the hashtable.

At the server level,
deserialize mailbox index, update index, serialize for each

Mail read, delete, new message

Or you could store the index in a database (Access, MSSQL, Oracle, Excel)

The pop server is doing this on every action for a message, and believe it
or not, its pretty fast. The question is how efficient can you make it. The
most efficient would most likely be SQL or Oracle. Second would be Access.
Finally, Serialization.


"Madestro" wrote:
Hi guys,

I am making a small program to retrieve e-mails from POP accounts. I got all
the e-mail parsing stuff figured out, but I cannot seem to come up with a way
to find out which e-mails are NEW so I don't have to retrieve them all. If
you have experience with this kind of thing, you know that the server creates
unique IDs for all the messages, but this IDs are not guaranteed to be
unique, since they can be reused once a message is deleted.
I wonder how Outlook checks for new messages... it happens very fast which
would indicate it is not really checking EVERY ID on its DB against the POP
server...

Any ideas?

Thank you in advance!

Juan Romero
-----------------------------------------
The successful person has the habit of doing the things failures don't like
to do.
E.M. Gray

Jul 22 '05 #2
"=?Utf-8?B?TWFkZXN0cm8 =?=" <me_no_like_spa m_juanDOTromero @bowneDOTcom>
wrote in news:F7******** *************** ***********@mic rosoft.com:
I am making a small program to retrieve e-mails from POP accounts. I
got all the e-mail parsing stuff figured out, but I cannot seem to
come up with a way to find out which e-mails are NEW so I don't have
to retrieve them all. If you have experience with this kind of thing,


POP3 does not keep track of what is new or not, you have to do that. You can use the UIDL command
to do this. There is a very basic demo here of POP3 client (Does not show UIDL, but it supports
UIDL):
http://www.codeproject.com/useritems/POP3Client.asp
--
Chad Z. Hower (a.k.a. Kudzu) - http://www.hower.org/Kudzu/
"Programmin g is an art form that fights back"

Get your ASP.NET in gear with IntraWeb!
http://www.atozed.com/IntraWeb/
Jul 22 '05 #3
Your sample code only reflects client activity and does not emphsize UIDL or
how you would implement such a concept, nor does it say why you would want to.

The question was directed as to what approach one would take to implement
the monitoring of new/read messages at the server level. Many popular POP
servers support this concept now, and is easily proven by using common
clients on a couple of pc's. Each client will know which messages, the
previous client has read and which messages are still unread. This indicates
that the server is caching that information and presenting it to the client
requesting a LIST.

The RFC for POP version 3 states that POP is designed to house new messages
on the server until a client downloads them and ultimately deletes them. It
was not designed for enhanced mail manipulation. If you want to be elaborate
with message management, the RFC points you to IMAP.

How ever, since the RFC supports flagging a message for deletion, we can
take the opportuinity to extend the bit into a byte and use it as a tripple
state flag {New, Read, Delete}

Here is a bit of skeleton code to help illustrate my point. I hope it
helps. I realize that it is far from complete and less than optimal, but I
am sure you can glean from it, what I was trying to demonstrate and move
forward with your project.

<Serializable() > Public Enum MessageStates As Byte
[new] = 0
[read] = 1
[delete] = 2
End Enum

<Serializable() > Public Class Mailbox

Private m_MailMessages As MailMessages

Public Sub New()
m_MailMessages = New MailMessages
End Sub

Public Property Messages() As MailMessages
Get
Return m_MailMessages
End Get
Set(ByVal Value As MailMessages)
m_MailMessages = Value
End Set
End Property

Public ReadOnly Property Count() As Integer
Get

Dim TheCount As Integer

For Each mm As MailMessage In m_MailMessages
If mm.MessageSate <> MessageStates.d elete Then
TheCount = TheCount + 1
End If
Next

Return TheCount

End Get

End Property

Public NotInheritable Class MailMessages
Inherits Hashtable

Public Sub New()
MyBase.New()
End Sub

Public Overloads Sub Add(ByVal MessageID As String, ByVal MessagePtr As
MailMessage)
MyBase.Add(Mess ageID, MessagePtr)
End Sub

Public Overloads Function ContainsKey(ByV al MessageID As String) As
Boolean

If MyBase.Contains Key(MessageID) = True Then
If CType(MyBase.It em(MessageID), MailMessage).Me ssageSate <>
MessageStates.d elete Then
Return True
Else
Return False
End If
End If

End Function

Public Overrides Function GetEnumerator() As
System.Collecti ons.IDictionary Enumerator
Return New MailMessageEnum erator(Me)
End Function

Public Overloads Sub Remove(ByVal MessageID As String)

If MyBase.Contains Key(MessageID) = True Then
CType(MyBase.It em(MessageID), MailMessage).Me ssageSate =
MessageStates.d elete
End If

End Sub

Default Public Overloads Property Item(ByVal MessageID As String) As
MailMessage
Get
Return CType(MyBase.It em(MessageID), MailMessage)
End Get
Set(ByVal Value As MailMessage)
MyBase.Item(Mes sageID) = Value
End Set
End Property
End Class

Public NotInheritable Class MailMessageEnum erator
Implements IEnumerator

Private m_Enumerable As IDictionaryEnum erator

Public Sub New(ByVal MessageTable As MailMessages)
m_Enumerable = MessageTable.Ge tEnumerator
End Sub

Private ReadOnly Property IEnumerator_Cur rent() As Object Implements
System.Collecti ons.IEnumerator .Current
Get
Return m_Enumerable.Cu rrent
End Get
End Property

Private Function IEnumerator_Mov eNext() As Boolean Implements
System.Collecti ons.IEnumerator .MoveNext
m_Enumerable.Mo veNext()
End Function

Private Sub IEnumerator_Res et() Implements
System.Collecti ons.IEnumerator .Reset
m_Enumerable.Re set()
End Sub

Public ReadOnly Property Current() As MailMessage
Get
Return CType(IEnumerat or_Current, MailMessage)
End Get
End Property

Public Function MoveNext() As Boolean
m_Enumerable.Mo veNext()
End Function

Public Sub Reset()
IEnumerator_Res et()
End Sub

End Class

Public NotInheritable Class MailMessage
Private m_MessageID As String
Private m_MessageState As MessageStates

Public Sub New(ByVal MessageID As String)
m_MessageID = MessageID
m_MessageState = MessageStates.[new]
End Sub

Public ReadOnly Property MessageID() As String
Get
Return m_MessageID
End Get
End Property

Public Property MessageSate() As MessageStates
Get
Return m_MessageState
End Get
Set(ByVal Value As MessageStates)
m_MessageState = Value
End Set
End Property

End Class

End Class

Public Class POPServer

Private m_Shutdown As Boolean
Private m_LoggedInUsers As Hashtable
Private m_Sessions As Hashtable
Private m_Mailboxes As Hashtable

Private Structure SessionInfo
Dim ClientSession As POPSession
Dim UserName As String
End Structure

Public Sub New()
m_Shutdown = False
m_Sessions = New Hashtable
m_Mailboxes = New Hashtable
m_LoggedInUsers = New Hashtable
End Sub

'main loop
Sub MainLoop()

Dim poplistener As System.Net.Sock ets.TcpListener
poplistener = New
System.Net.Sock ets.TcpListener (System.Net.IPA ddress.Parse("1 27.0.0.1"), 5555)

'With a TCPLisener, wait for a new connection
poplistener.Sta rt()

Do While Not m_Shutdown

'Accept any new clients out there
Dim POPClient As System.Net.Sock ets.TcpClient

POPClient = poplistener.Acc eptTcpClient

'We have a connection

'Pass it on
Dim ThisSessionInfo As SessionInfo
Dim ThisSession As POPSession
Dim POPThread As System.Threadin g.Thread
Dim SessionID As String

SessionID = System.Guid.New Guid.ToString

ThisSession = New POPSession(Me, POPClient, SessionID)

With ThisSessionInfo
.ClientSession = ThisSession
End With

m_Sessions.Add( SessionID, ThisSessionInfo )

POPThread = New System.Threadin g.Thread(Addres sOf
ThisSession.Ses sionStart)

POPThread.Start ()

Loop

poplistener.Sto p()

End Sub

Public Function SessionLogin(By Val SessionID As String, ByVal UserName As
String, ByVal Password As String) As Byte()

Dim bSuccess As Boolean

'Login Validation logic here

If bSuccess Then

If Not m_LoggedInUsers .ContainsKey(Us erName.ToUpper) Then
Dim SessionMap As Hashtable
SessionMap = New Hashtable

SessionMap.Add( SessionID, SessionID)

m_LoggedInUsers .Add(UserName, SessionMap)

Else

Dim SessionMap As Hashtable

SessionMap = CType(m_LoggedI nUsers(UserName ), Hashtable)
SessionMap.Add( SessionID, SessionID)

End If

If m_Sessions.Cont ainsKey(Session ID) Then
Dim ThisSessionInfo As SessionInfo
ThisSessionInfo = CType(m_Session s.Item(SessionI D), SessionInfo)
ThisSessionInfo .UserName = UserName.ToUppe r
End If

Dim ThisMailbox As Mailbox

'Deserialize the mailbox

m_Mailboxes.Add (UserName, ThisMailbox)

End If

End Function

Public Function SessionRETR(ByV al SessionID As String, ByVal MessageID As
String) As Byte()

Dim bData() As Byte
Dim bSuccess As Boolean

'Validate our session

'Read the message into our byte array

If bSuccess Then
Dim ThisSessionInfo As SessionInfo

If m_Sessions.Cont ainsKey(Session ID) Then

ThisSessionInfo = m_Sessions.Item (SessionID)

If m_Mailboxes.Con tainsKey(ThisSe ssionInfo.UserN ame) Then

Dim ThisMailbox As Mailbox

ThisMailbox = CType(m_Mailbox es.Item(ThisSes sionInfo.UserNa me),
Mailbox)
ThisMailbox.Mes sages(MessageID ).MessageSate = MessageStates.r ead

Return bData

End If

End If

End If
End Function

Public Sub SessionLogout(B yVal SessionID As String)

Dim ThisSessionInfo As SessionInfo

'Determine if we need to close this mailbox
If m_Sessions.Cont ainsKey(Session ID) Then

ThisSessionInfo = m_Sessions.Item (SessionID)

If m_LoggedInUsers .ContainsKey(Th isSessionInfo.U serName) Then

Dim SessionMap As Hashtable

SessionMap = m_LoggedInUsers .Item(ThisSessi onInfo.UserName )

If SessionMap.Cont ainsKey(Session ID) Then

SessionMap.Remo ve(SessionMap.I tem(SessionID))

If SessionMap.Coun t = 0 Then

If m_Mailboxes.Con tainsKey(ThisSe ssionInfo.UserN ame) Then
Dim ThisMailBox As Mailbox
ThisMailBox =
CType(m_Mailbox es.Item(ThisSes sionInfo.UserNa me), Mailbox)

'Check for deleted messages

SyncLock Me

For Each mm As Mailbox.MailMes sage In ThisMailBox.Mes sages
If mm.MessageSate = MessageStates.d elete Then
'Delete the message
ThisMailBox.Mes sages.Remove(mm )
End If
Next

End SyncLock

'Serialize the mailbox back to the hard drive

End If

m_Mailboxes.Rem ove(ThisSession Info.UserName)

m_LoggedInUsers .Remove(m_Logge dInUsers.Item(T hisSessionInfo. UserName))

End If

End If

End If

End If

End Sub

End Class

Public Class POPSession

'I think I should use delegate, but I can never figure them out

'Public Delegate Function Login(ByVal SessionID As String, ByVal UserName
As String, ByVal Password As String) As Byte()
'Public Delegate Function RETR(ByVal SessionID As String, ByVal MessageID
As String) As Byte()
'Public Delegate Sub Logout(ByVal SessionID As String)

'Public DoLogin As Login
'Public DoRETR As RETR
'Public DoLogout As Logout

Private m_PopServer As POPServer
Private m_TcpClient As System.Net.Sock ets.TcpClient
Private m_SessionID As String
Private m_UserName As String

Public Sub New(ByVal PopServer As POPServer, ByVal POPClient As
System.Net.Sock ets.TcpClient, ByVal SessionID As String)
m_PopServer = PopServer
m_TcpClient = POPClient
m_SessionID = SessionID
End Sub

Public Sub SessionStart()

Dim clientcommand As String
Dim commandargs() As String

'Listen for new commands
While 1 = 1

'parsing logic here

Select Case clientcommand.T oUpper
Case "PASS"
'Assuming we already had the USER command
LocalPASS(comma ndargs(0))
Case "RETR"
LocalRETR(comma ndargs(0))
Case "QUIT"
LocalLogout()
End Select

End While

End Sub

Private Sub LocalPASS(ByVal Password As String)

Dim bData As Byte()

bData = m_PopServer.Ses sionLogin(m_Ses sionID, m_UserName, Password)

sendData(bData)

End Sub

Private Sub LocalRETR(ByVal MessageID As String)
Dim bData As Byte()

bData = m_PopServer.Ses sionRETR(m_Sess ionID, MessageID)

sendData(bData)

End Sub

Private Sub LocalLogout()
m_PopServer.Ses sionLogout(m_Se ssionID)
End Sub

Private Sub sendData(ByVal DataToSend As Byte())
Dim stream As System.net.Sock ets.NetworkStre am = m_TcpClient.Get Stream()
'Log Activity here

'Send Data
stream.Write(Da taToSend, 0, DataToSend.Leng th)
End Sub

End Class

"Chad Z. Hower aka Kudzu" wrote:
"=?Utf-8?B?TWFkZXN0cm8 =?=" <me_no_like_spa m_juanDOTromero @bowneDOTcom>
wrote in news:F7******** *************** ***********@mic rosoft.com:
I am making a small program to retrieve e-mails from POP accounts. I
got all the e-mail parsing stuff figured out, but I cannot seem to
come up with a way to find out which e-mails are NEW so I don't have
to retrieve them all. If you have experience with this kind of thing,


POP3 does not keep track of what is new or not, you have to do that. You can use the UIDL command
to do this. There is a very basic demo here of POP3 client (Does not show UIDL, but it supports
UIDL):
http://www.codeproject.com/useritems/POP3Client.asp
--
Chad Z. Hower (a.k.a. Kudzu) - http://www.hower.org/Kudzu/
"Programmin g is an art form that fights back"

Get your ASP.NET in gear with IntraWeb!
http://www.atozed.com/IntraWeb/

Jul 22 '05 #4
Nevermind, it was too late last night. Madestro was asking about the client.

"AMDIRT" wrote:
Your sample code only reflects client activity and does not emphsize UIDL or
how you would implement such a concept, nor does it say why you would want to.

The question was directed as to what approach one would take to implement
the monitoring of new/read messages at the server level. Many popular POP
servers support this concept now, and is easily proven by using common
clients on a couple of pc's. Each client will know which messages, the
previous client has read and which messages are still unread. This indicates
that the server is caching that information and presenting it to the client
requesting a LIST.

The RFC for POP version 3 states that POP is designed to house new messages
on the server until a client downloads them and ultimately deletes them. It
was not designed for enhanced mail manipulation. If you want to be elaborate
with message management, the RFC points you to IMAP.

How ever, since the RFC supports flagging a message for deletion, we can
take the opportuinity to extend the bit into a byte and use it as a tripple
state flag {New, Read, Delete}

Here is a bit of skeleton code to help illustrate my point. I hope it
helps. I realize that it is far from complete and less than optimal, but I
am sure you can glean from it, what I was trying to demonstrate and move
forward with your project.

<Serializable() > Public Enum MessageStates As Byte
[new] = 0
[read] = 1
[delete] = 2
End Enum

<Serializable() > Public Class Mailbox

Private m_MailMessages As MailMessages

Public Sub New()
m_MailMessages = New MailMessages
End Sub

Public Property Messages() As MailMessages
Get
Return m_MailMessages
End Get
Set(ByVal Value As MailMessages)
m_MailMessages = Value
End Set
End Property

Public ReadOnly Property Count() As Integer
Get

Dim TheCount As Integer

For Each mm As MailMessage In m_MailMessages
If mm.MessageSate <> MessageStates.d elete Then
TheCount = TheCount + 1
End If
Next

Return TheCount

End Get

End Property

Public NotInheritable Class MailMessages
Inherits Hashtable

Public Sub New()
MyBase.New()
End Sub

Public Overloads Sub Add(ByVal MessageID As String, ByVal MessagePtr As
MailMessage)
MyBase.Add(Mess ageID, MessagePtr)
End Sub

Public Overloads Function ContainsKey(ByV al MessageID As String) As
Boolean

If MyBase.Contains Key(MessageID) = True Then
If CType(MyBase.It em(MessageID), MailMessage).Me ssageSate <>
MessageStates.d elete Then
Return True
Else
Return False
End If
End If

End Function

Public Overrides Function GetEnumerator() As
System.Collecti ons.IDictionary Enumerator
Return New MailMessageEnum erator(Me)
End Function

Public Overloads Sub Remove(ByVal MessageID As String)

If MyBase.Contains Key(MessageID) = True Then
CType(MyBase.It em(MessageID), MailMessage).Me ssageSate =
MessageStates.d elete
End If

End Sub

Default Public Overloads Property Item(ByVal MessageID As String) As
MailMessage
Get
Return CType(MyBase.It em(MessageID), MailMessage)
End Get
Set(ByVal Value As MailMessage)
MyBase.Item(Mes sageID) = Value
End Set
End Property
End Class

Public NotInheritable Class MailMessageEnum erator
Implements IEnumerator

Private m_Enumerable As IDictionaryEnum erator

Public Sub New(ByVal MessageTable As MailMessages)
m_Enumerable = MessageTable.Ge tEnumerator
End Sub

Private ReadOnly Property IEnumerator_Cur rent() As Object Implements
System.Collecti ons.IEnumerator .Current
Get
Return m_Enumerable.Cu rrent
End Get
End Property

Private Function IEnumerator_Mov eNext() As Boolean Implements
System.Collecti ons.IEnumerator .MoveNext
m_Enumerable.Mo veNext()
End Function

Private Sub IEnumerator_Res et() Implements
System.Collecti ons.IEnumerator .Reset
m_Enumerable.Re set()
End Sub

Public ReadOnly Property Current() As MailMessage
Get
Return CType(IEnumerat or_Current, MailMessage)
End Get
End Property

Public Function MoveNext() As Boolean
m_Enumerable.Mo veNext()
End Function

Public Sub Reset()
IEnumerator_Res et()
End Sub

End Class

Public NotInheritable Class MailMessage
Private m_MessageID As String
Private m_MessageState As MessageStates

Public Sub New(ByVal MessageID As String)
m_MessageID = MessageID
m_MessageState = MessageStates.[new]
End Sub

Public ReadOnly Property MessageID() As String
Get
Return m_MessageID
End Get
End Property

Public Property MessageSate() As MessageStates
Get
Return m_MessageState
End Get
Set(ByVal Value As MessageStates)
m_MessageState = Value
End Set
End Property

End Class

End Class

Public Class POPServer

Private m_Shutdown As Boolean
Private m_LoggedInUsers As Hashtable
Private m_Sessions As Hashtable
Private m_Mailboxes As Hashtable

Private Structure SessionInfo
Dim ClientSession As POPSession
Dim UserName As String
End Structure

Public Sub New()
m_Shutdown = False
m_Sessions = New Hashtable
m_Mailboxes = New Hashtable
m_LoggedInUsers = New Hashtable
End Sub

'main loop
Sub MainLoop()

Dim poplistener As System.Net.Sock ets.TcpListener
poplistener = New
System.Net.Sock ets.TcpListener (System.Net.IPA ddress.Parse("1 27.0.0.1"), 5555)

'With a TCPLisener, wait for a new connection
poplistener.Sta rt()

Do While Not m_Shutdown

'Accept any new clients out there
Dim POPClient As System.Net.Sock ets.TcpClient

POPClient = poplistener.Acc eptTcpClient

'We have a connection

'Pass it on
Dim ThisSessionInfo As SessionInfo
Dim ThisSession As POPSession
Dim POPThread As System.Threadin g.Thread
Dim SessionID As String

SessionID = System.Guid.New Guid.ToString

ThisSession = New POPSession(Me, POPClient, SessionID)

With ThisSessionInfo
.ClientSession = ThisSession
End With

m_Sessions.Add( SessionID, ThisSessionInfo )

POPThread = New System.Threadin g.Thread(Addres sOf
ThisSession.Ses sionStart)

POPThread.Start ()

Loop

poplistener.Sto p()

End Sub

Public Function SessionLogin(By Val SessionID As String, ByVal UserName As
String, ByVal Password As String) As Byte()

Dim bSuccess As Boolean

'Login Validation logic here

If bSuccess Then

If Not m_LoggedInUsers .ContainsKey(Us erName.ToUpper) Then
Dim SessionMap As Hashtable
SessionMap = New Hashtable

SessionMap.Add( SessionID, SessionID)

m_LoggedInUsers .Add(UserName, SessionMap)

Else

Dim SessionMap As Hashtable

SessionMap = CType(m_LoggedI nUsers(UserName ), Hashtable)
SessionMap.Add( SessionID, SessionID)

End If

If m_Sessions.Cont ainsKey(Session ID) Then
Dim ThisSessionInfo As SessionInfo
ThisSessionInfo = CType(m_Session s.Item(SessionI D), SessionInfo)
ThisSessionInfo .UserName = UserName.ToUppe r
End If

Dim ThisMailbox As Mailbox

'Deserialize the mailbox

m_Mailboxes.Add (UserName, ThisMailbox)

End If

End Function

Public Function SessionRETR(ByV al SessionID As String, ByVal MessageID As
String) As Byte()

Dim bData() As Byte
Dim bSuccess As Boolean

'Validate our session

Jul 22 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
3117
by: simonc | last post by:
I've been programming in assembler and C/C++ for a number of years, but I'm only just starting down the road of PHP & MYSQL. I have a couple of questions: (1) Before I start writing my own code, to learn from, and also avoid re-inventing the wheel, does anyone know of any existing source that implements a (basic or complex) play-by-email...
4
2078
by: Bill | last post by:
Is it possible to somehow activate a page containing a php script by sending an email to a mailbox on the server? I have a script that sends out notification emails to an individual. He wants to receive them continuously until he decides he has seen enough of them. Then to stop receiving the emails he has to use his browser and go to the web...
4
3004
by: dmiller23462 | last post by:
So here's my problem.....I need to set up different email distributions based on which option in the following Select form has been chosen....For instance if "Putaway" is chosen it needs to email User1@here.whatever and User4@here.whatever but if "Loaded" is chosen it needs to email User2@here.whatever and User3@here.whatever, etc, etc... ...
5
2610
by: BaWork | last post by:
I have a web form where a client can select which site members to send an email to. This form is populated from the contents of the member table, so the form can have 0-x names listed on it depending on member expiration dates. When the form is submitted, the code loops through the form contents and sends an email to those members that...
8
2468
by: Dica | last post by:
i've got a client that wants to be able to review records about IIS generated emails. in his own words, he wants the "ability to track and report message status (i.e. how many messages were sent successfully, how many were blocked, how many bounced back with an incorrect address)" i'd start by adding a new row containing the email...
13
3193
by: joe215 | last post by:
I want my users to send emails from a Windows app that I am developing in Visual Basic.NET 2003. I found a good example of sending email to a SMTP server using the SmtpMail class. However, using this, it seems, that the user must install IIS on their computer. Isn't there a class that will detect whatever mail server is available on a...
24
7089
by: Arno R | last post by:
Hi all, I have a client with several shoe-shops. Customers can leave their email-address if they want to be notified when there is a sale. Input is validated with instr() I am checking for @ and . (required) and also checking for spaces (not allowed). But: A LOT (5-10%) of the addresses still are wrong; (provider doesn't exist) or...
4
2078
by: MostlyH2O | last post by:
Hi Folks, I have been going in circles for weeks - trying to find the best way to send and manage emails from my ASP application. The email page might send as many as 500 individual emails at a time. The emails are in the user database for the website. It's used for sending group notices and passwords to the members. I'm currently...
3
332
by: JaffaCakes | last post by:
I want to send an email confirmation after a user completes a form on our Internet page. I am testing this with the System.Web.Mail.SmtpMail class. If I do a SmtpMail.Send then the message takes days to reach the recipient. It is possible to set the SmtpServer but what will it be as the webserver is sitting on the otherside of our firewall...
1
1691
by: slinky | last post by:
Thanks in advance for for any clues: I have a website I'm building using MS-Visual Web Developer Express Asp.Net/VB.net). I'm tooling it to collect names and emails to send out our newsletter. I'm hoping to find some Javascript that will iterate through my XML file and send abtout 100 emails out automatically to those wanting my newsletter....
0
7484
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7928
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7440
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
7775
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
5997
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5344
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
4963
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3470
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
1
1902
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.