469,270 Members | 1,633 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,270 developers. It's quick & easy.

Receiving email with VB.NET

I am researching this topic without a satisfactory solution so far.
Please let me know which is the easiest way to receive email using VB
code. All I need is to test source address or subject line for the
right email, and then click a link inside that email.
I've seen some people suggested MAPI component, but it's missing in my
complete components list (not only in the toolbar). But I see an
Outlook Express component, which I suspect is easier to use than
Outlook or CDO objects. Anyway, I am looking for something that will
be available on any machine, and not only on one with Outlook
installed.
Nov 21 '05 #1
5 19243
What is your environment? If you have an exchange server you could use
WebDAV... which does not require Outlook.
"sophocles the wise" <ap****@nyc.rr.com> wrote in message
news:1f*************************@posting.google.co m...
I am researching this topic without a satisfactory solution so far.
Please let me know which is the easiest way to receive email using VB
code. All I need is to test source address or subject line for the
right email, and then click a link inside that email.
I've seen some people suggested MAPI component, but it's missing in my
complete components list (not only in the toolbar). But I see an
Outlook Express component, which I suspect is easier to use than
Outlook or CDO objects. Anyway, I am looking for something that will
be available on any machine, and not only on one with Outlook
installed.

Nov 21 '05 #2
Thanks for the reply :-)
I am not in Exchange environment. Just regular computer. I need my
application to run on any computer. If Outlook is a must, then let it
be... as soon as I am shown how to access its interface.

Alex

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Nov 21 '05 #3
Check out Abderaware's mail products (www.abderaware.com). They're .Net
assemblies, and provide what seems to be complete functionality for
receiving email. I've used it to create an email screener for my own use, to
classify spam and delete it before running Outlook to receive my email. You
can download a copy of it, free for personal use, and evaluate it before
purchasing. They've got a whole slew of network products - FTP, SNMP, etc.

HTH,
Tom Dacon
Dacon Software Consulting

"sophocles the wise" <ap****@nyc.rr.com> wrote in message
news:1f*************************@posting.google.co m...
I am researching this topic without a satisfactory solution so far.
Please let me know which is the easiest way to receive email using VB
code. All I need is to test source address or subject line for the
right email, and then click a link inside that email.
I've seen some people suggested MAPI component, but it's missing in my
complete components list (not only in the toolbar). But I see an
Outlook Express component, which I suspect is easier to use than
Outlook or CDO objects. Anyway, I am looking for something that will
be available on any machine, and not only on one with Outlook
installed.

Nov 21 '05 #4
Hi,

I converted this c# pop3 mail class to vb.net. Maybe this will
help.

http://www.programmersheaven.com/2/Art_CSharp_3

How to use

Dim mail As New Pop3Mail

mail.Connect("mail.xxxx.net", "user", "password")

For Each msg As Pop3Mail.Pop3Message In mail.List

Trace.WriteLine(DirectCast(mail.Retrieve(msg),
Pop3Mail.Pop3Message).message)

Next

The class

Imports System.Net.Sockets

Public Class Pop3Mail

Inherits System.Net.Sockets.TcpClient

Public Class Pop3Exception

Inherits System.ApplicationException
Public Sub New(ByVal str As String)

MyBase.New(str)
End Sub 'New

End Class 'Pop3Exception

Public Class Pop3Message

Public number As Long

Public bytes As Long

Public retrieved As Boolean

Public message As String

End Class 'Pop3Message

Public Overloads Sub Connect(ByVal server As String, ByVal username As
String, ByVal password As String)

Dim message As String

Dim strResponse As String

Connect(server, 110)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(Response)

End If

message = "USER " + username + vbCr + vbLf

Write(message)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(strResponse)

End If

message = "PASS " + password + vbCr + vbLf

Write(message)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(strResponse)

End If

End Sub 'Connect

Public Sub Disconnect()

Dim message As String

Dim strResponse As String

message = "QUIT" + vbCr + vbLf

Write(message)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(strResponse)

End If

End Sub 'Disconnect

Public Function List() As ArrayList

Dim message As String

Dim strResponse As String

Dim retval As New ArrayList

message = "LIST" + vbCr + vbLf

Write(message)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(strResponse)

End If

While True

strResponse = Response()

If strResponse = "." & vbCr & vbLf Then

Return retval

Else

Dim msg As New Pop3Message

Dim seps As Char() = " ".ToCharArray

Dim values As String() = strResponse.Split(seps)

msg.number = Int32.Parse(values(0))

msg.bytes = Int32.Parse(values(1))

msg.retrieved = False

retval.Add(msg)

End If

End While

End Function 'List

Public Function Retrieve(ByVal rhs As Pop3Message) As Pop3Message

Dim message As String

Dim strResponse As String

Dim msg As New Pop3Message

msg.bytes = rhs.bytes

msg.number = rhs.number

message = "RETR " & rhs.number & vbCr & vbLf

Write(message)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(strResponse)

End If

msg.retrieved = True

While True

strResponse = Response()

If strResponse = "." & vbCr & vbLf Then

Exit While

Else

msg.message += strResponse

End If

End While

Return msg

End Function 'Retrieve

Private Sub Write(ByVal message As String)

Dim en As New System.Text.ASCIIEncoding

Dim WriteBuffer(1023) As Byte

WriteBuffer = en.GetBytes(message)

Dim stream As NetworkStream = GetStream()

stream.Write(WriteBuffer, 0, WriteBuffer.Length)

Debug.WriteLine("WRITE:" + message)

End Sub 'Write

Public Sub Delete(ByVal rhs As Pop3Message)

Dim message As String

Dim strResponse As String

message = "DELE " & rhs.number & vbCr & vbLf

Write(message)

strResponse = Response()

If strResponse.Substring(0, 3) <> "+OK" Then

Throw New Pop3Exception(strResponse)

End If

End Sub 'Delete

Private Function Response() As String

Dim enc As New System.Text.ASCIIEncoding

Dim serverbuff() As Byte = New [Byte](1023) {}

Dim stream As NetworkStream = GetStream()

Dim count As Integer = 0

While True

Dim buff() As Byte = New [Byte](1) {}

Dim bytes As Integer = stream.Read(buff, 0, 1)

If bytes = 1 Then

serverbuff(count) = buff(0)

count += 1

If buff(0) = Asc(vbLf) Then

Exit While

End If

Else

Exit While

End If

End While

Dim retval As String = enc.GetString(serverbuff, 0, count)

Debug.WriteLine("READ:" + retval)

Return retval

End Function 'Response

End Class

Ken

---------------------------------
"sophocles the wise" <ap****@nyc.rr.com> wrote in message
news:1f*************************@posting.google.co m...
I am researching this topic without a satisfactory solution so far.
Please let me know which is the easiest way to receive email using VB
code. All I need is to test source address or subject line for the
right email, and then click a link inside that email.
I've seen some people suggested MAPI component, but it's missing in my
complete components list (not only in the toolbar). But I see an
Outlook Express component, which I suspect is easier to use than
Outlook or CDO objects. Anyway, I am looking for something that will
be available on any machine, and not only on one with Outlook
installed.
Nov 21 '05 #5
Sophocles,
Anyway, I am looking for something that will
be available on any machine, and not only on one with Outlook
installed. In addition to the other 3rd party suggestions.

Matthew MacDonald's book "Microsoft Visual Basic .NET Programmer's Cookbook"
from MS Press has a topic on how to retrieve email using POP3, complete with
a sample class.

Hope this helps
Jay

"sophocles the wise" <ap****@nyc.rr.com> wrote in message
news:1f*************************@posting.google.co m...I am researching this topic without a satisfactory solution so far.
Please let me know which is the easiest way to receive email using VB
code. All I need is to test source address or subject line for the
right email, and then click a link inside that email.
I've seen some people suggested MAPI component, but it's missing in my
complete components list (not only in the toolbar). But I see an
Outlook Express component, which I suspect is easier to use than
Outlook or CDO objects. Anyway, I am looking for something that will
be available on any machine, and not only on one with Outlook
installed.

Nov 21 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Ramiro Barbosa, Jr. | last post: by
1 post views Thread by Sajsal | last post: by
reply views Thread by André Betz | last post: by
2 posts views Thread by mamatha | last post: by
7 posts views Thread by darthghandi | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.