POP3 mail getting, Smtp Sending

Posted on 1998-06-11
Last Modified: 2013-11-13
How can I get Mails from a POP3 Server ad send mails trough a SMTP Server with VB 5.0?
Question by:mas11
  • 2
  • 2

Author Comment

ID: 1463164
Edited text of question

Accepted Solution

seahpc earned 100 total points
ID: 1463165
For Receving mails, I will reference you to a site later.
For Sending mails, I will atttach the codes below .
Hope it helps .
You will need some textboxes, label, winsock control and a command button

Dim Response As String, Reply As Integer, DateNow As String
Dim first As String, Second As String, Third As String
Dim Fourth As String, Fifth As String, Sixth As String
Dim Seventh As String, Eighth As String
Dim Start As Single, Tmr As Single

Sub SendEmail(MailServerName As String, FromName As String, FromEmailAddress As String, ToName As String, ToEmailAddress As String, EmailSubject As String, EmailBodyOfMessage As String)
      Winsock1.LocalPort = 0 ' Must set local port to 0

        If Winsock1.State = sckClosed Then ' Check to see if socet is closed
            DateNow = Format(Date, "Ddd") & ", " & Format(Date, "dd Mmm YYYY") & " " &  Format(Time, "hh:mm:ss") & "" & " -0600"
            first = "mail from:" + Chr(32) + FromEmailAddress + vbCrLf ' Get who's sending E-Mail address
                Second = "rcpt to:" + Chr(32) + ToEmailAddress + vbCrLf ' Get who mail is going to
                third = "Date:" + Chr(32) + DateNow + vbCrLf ' Date when being sent
                Fourth = "From:" + Chr(32) + FromName + vbCrLf ' Who's Sending
                Fifth = "To:" + Chr(32) + ToNametxt + vbCrLf ' Who it going to
                Sixth = "Subject:" + Chr(32) + EmailSubject + vbCrLf ' Subject of E-Mail
                Seventh = EmailBodyOfMessage + vbCrLf ' E-mail message body
            Ninth = "X-Mailer: EBT Reporter v 2.x" + vbCrLf ' What program sent the e-mail, customize this
                Eighth = Fourth + Third + Ninth + Fifth + Sixth ' Combine for proper SMTP sending
                Winsock1.Protocol = sckTCPProtocol ' Set protocol for sending
                Winsock1.RemoteHost = MailServerName ' Set the server address
                Winsock1.RemotePort = 25 ' Set the SMTP Port
                Winsock1.Connect ' Start connection
                WaitFor ("220")
                StatusTxt.Caption = "Connecting...."
                Winsock1.SendData ("HELO" + vbCrLf)
                WaitFor ("250")
                StatusTxt.Caption = "Connected"
                Winsock1.SendData (first)
                StatusTxt.Caption = "Sending Message"
                WaitFor ("250")
                Winsock1.SendData (Second)
                WaitFor ("250")
                Winsock1.SendData ("data" + vbCrLf)
                WaitFor ("354")
                Winsock1.SendData (Eighth + vbCrLf)
                Winsock1.SendData (Seventh + vbCrLf)
                Winsock1.SendData ("." + vbCrLf)
                WaitFor ("250")
                Winsock1.SendData ("quit" + vbCrLf)
                StatusTxt.Caption = "Disconnecting"
                WaitFor ("221")
                MsgBox (Str(Winsock1.State))
        End If

End Sub

Sub WaitFor(ResponseCode As String)
       Start = Timer ' Time event so won't get stuck in loop
       While Len(Response) = 0
              Tmr = Start - Timer
               DoEvents ' Let System keep checking for incoming response **IMPORTANT**
               If Tmr > 50 Then ' Time in seconds to wait
                     MsgBox "SMTP service error, timed out while waiting for response", 64, MsgTitle
                             Exit Sub
               End If

        While Left(Response, 3) <> ResponseCode
         If Tmr > 50 Then
            MsgBox "SMTP service error, impromper response code. Code should have been: " + ResponseCode + " Code recieved: " + Response, 64, MsgTitle
                Exit Sub
        End If
        Response = "" ' Sent response code to blank **IMPORTANT**
End Sub

Private Sub Command1_Click()
SendEmail txtEmailServer.Text, txtFromName.Text, txtFromEmailAddress.Text,           txtToEmailAddress.Text, txtToEmailAddress.Text, txtEmailSubject.Text, txtEmailBodyOfMessage.Text
       StatusTxt.Caption = "Mail Sent"
End Sub

Private Sub Command2_Click()
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
       Winsock1.GetData Response ' Check for incoming response *IMPORTANT*
End Sub


Author Comment

ID: 1463166
Which site did you, seahpc, want to refrence to me?

Thanx for your answer!! Really helped!

Expert Comment

ID: 1463167
Hi, mas11

The site that I recommend is
Heard of this site ?
It has hundreds of codes for VB and JavaScript .
One of the topic is receiving and sending of mail .
I try to search for it but my company network is down but I am sure it is there .
Try going into this site and browse through all topics .
Today wil ltry to search the exact location for you .


Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question