Form1.frm
上传用户:hdzyqc
上传日期:2022-07-20
资源大小:5k
文件大小:8k
源码类别:

Email客户端

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
  3. Begin VB.Form Form1 
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   6705
  6.    ClientLeft      =   60
  7.    ClientTop       =   345
  8.    ClientWidth     =   6450
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   6705
  11.    ScaleWidth      =   6450
  12.    StartUpPosition =   3  'Windows Default
  13.    Begin VB.TextBox txtEmailBodyOfMessage 
  14.       Height          =   3015
  15.       Left            =   120
  16.       TabIndex        =   6
  17.       Top             =   3240
  18.       Width           =   6135
  19.    End
  20.    Begin VB.TextBox txtEmailSubject 
  21.       Height          =   375
  22.       Left            =   120
  23.       TabIndex        =   5
  24.       Top             =   2400
  25.       Width           =   6135
  26.    End
  27.    Begin VB.TextBox txtToEmailAddress 
  28.       Height          =   375
  29.       Left            =   120
  30.       TabIndex        =   4
  31.       Top             =   1440
  32.       Width           =   1695
  33.    End
  34.    Begin VB.TextBox txtFromEmailAddress 
  35.       Height          =   375
  36.       Left            =   2280
  37.       TabIndex        =   3
  38.       Top             =   1440
  39.       Width           =   1935
  40.    End
  41.    Begin VB.TextBox txtFromName 
  42.       Height          =   375
  43.       Left            =   2280
  44.       TabIndex        =   2
  45.       Top             =   600
  46.       Width           =   1935
  47.    End
  48.    Begin VB.TextBox txtEmailServer 
  49.       Height          =   375
  50.       Left            =   120
  51.       TabIndex        =   1
  52.       Top             =   600
  53.       Width           =   1695
  54.    End
  55.    Begin MSWinsockLib.Winsock Winsock1 
  56.       Left            =   6000
  57.       Top             =   1920
  58.       _ExtentX        =   741
  59.       _ExtentY        =   741
  60.       _Version        =   393216
  61.    End
  62.    Begin VB.CommandButton Command1 
  63.       Caption         =   "连接"
  64.       Height          =   495
  65.       Left            =   4920
  66.       TabIndex        =   0
  67.       Top             =   240
  68.       Width           =   1215
  69.    End
  70.    Begin VB.Label StatusTxt 
  71.       Caption         =   "Label7"
  72.       Height          =   255
  73.       Left            =   120
  74.       TabIndex        =   13
  75.       Top             =   6360
  76.       Width           =   6135
  77.    End
  78.    Begin VB.Label Label6 
  79.       Caption         =   "邮件正文"
  80.       Height          =   255
  81.       Left            =   120
  82.       TabIndex        =   12
  83.       Top             =   2880
  84.       Width           =   975
  85.    End
  86.    Begin VB.Label Label5 
  87.       Caption         =   "发件人地址"
  88.       Height          =   255
  89.       Left            =   2280
  90.       TabIndex        =   11
  91.       Top             =   1080
  92.       Width           =   1575
  93.    End
  94.    Begin VB.Label Label4 
  95.       Caption         =   "邮件主题"
  96.       Height          =   255
  97.       Left            =   120
  98.       TabIndex        =   10
  99.       Top             =   2040
  100.       Width           =   1575
  101.    End
  102.    Begin VB.Label Label3 
  103.       Caption         =   "收件人地址"
  104.       Height          =   255
  105.       Left            =   120
  106.       TabIndex        =   9
  107.       Top             =   1080
  108.       Width           =   1335
  109.    End
  110.    Begin VB.Label Label2 
  111.       Caption         =   "邮件发送人姓名"
  112.       Height          =   255
  113.       Left            =   2280
  114.       TabIndex        =   8
  115.       Top             =   240
  116.       Width           =   1455
  117.    End
  118.    Begin VB.Label Label1 
  119.       Caption         =   "邮件服务器地址"
  120.       Height          =   255
  121.       Left            =   120
  122.       TabIndex        =   7
  123.       Top             =   240
  124.       Width           =   1695
  125.    End
  126. End
  127. Attribute VB_Name = "Form1"
  128. Attribute VB_GlobalNameSpace = False
  129. Attribute VB_Creatable = False
  130. Attribute VB_PredeclaredId = True
  131. Attribute VB_Exposed = False
  132. Dim Response As String, Reply As Integer
  133. Dim DateNow As String, first As String, Second As String, Third As String
  134. Dim Fourth As String, Fifth As String, Sixth As String
  135. Dim Seventh As String, Eighth As String
  136. Dim Start As Single, Tmr As Single
  137. Sub SendEmail(MailServerName As String, FromName As String, FromEmailAddress As String, ToName As String, ToEmailAddress As String, EmailSubject As String, EmailBodyOfMessage As String)
  138.     Winsock1.LocalPort = 0  ' Must set local port to 0 (Zero) or
  139.                             'you can only send 1 e-mail per program
  140.                             'start
  141.     If Winsock1.State = sckClosed Then 'Check to see if socet is closed
  142.         DateNow = Format(Date, "Ddd") & ", " _
  143.                 & Format(Date, "dd Mmm YYYY") & " " _
  144.                 & Format(Time, "hh:mm:ss") & "" & " -0600"
  145.         
  146.         ' Get who's sending E-Mail address
  147.         first = "mail from:" + Chr(32) + FromEmailAddress + vbCrLf
  148.         ' Get who mail is going to
  149.         Second = "rcpt to:" + Chr(32) + ToEmailAddress + vbCrLf
  150.         ' Date when being sent
  151.         Third = "Date:" + Chr(32) + DateNow + vbCrLf
  152.         ' Who's Sending
  153.         Fourth = "From:" + Chr(32) + FromName + vbCrLf
  154.         ' Who it going to
  155.         Fifth = "To:" + Chr(32) + ToNametxt + vbCrLf
  156.         ' Subject of E-Mail
  157.         Sixth = "Subject:" + Chr(32) + EmailSubject + vbCrLf
  158.         ' E-mail message body
  159.         Seventh = EmailBodyOfMessage + vbCrLf
  160.         ' What program sent the e-mail, customize this
  161.         Ninth = "X-Mailer: EBT Reporter v 2.x" + vbCrLf
  162.         ' Combine for proper SMTP sending
  163.         Eighth = Fourth + Third + Ninth + Fifth + Sixth
  164.         
  165.         Winsock1.Protocol = sckTCPProtocol ' Set protocol for sending
  166.         Winsock1.RemoteHost = MailServerName ' Set the server address
  167.         Winsock1.RemotePort = 25 ' Set the SMTP Port
  168.         Winsock1.Connect ' Start connection
  169.         WaitFor ("220")
  170.         StatusTxt.Caption = "Connecting...."
  171.         StatusTxt.Refresh
  172.         Winsock1.SendData ("HELO worldcomputers.com" + vbCrLf)
  173.         WaitFor ("250")
  174.         StatusTxt.Caption = "Connected"
  175.         StatusTxt.Refresh
  176.         Winsock1.SendData (first)
  177.         StatusTxt.Caption = "Sending Message"
  178.         StatusTxt.Refresh
  179.         WaitFor ("250")
  180.         Winsock1.SendData (Second)
  181.         WaitFor ("250")
  182.         Winsock1.SendData ("data" + vbCrLf)
  183.         WaitFor ("354")
  184.         Winsock1.SendData (Eighth + vbCrLf)
  185.         Winsock1.SendData (Seventh + vbCrLf)
  186.         Winsock1.SendData ("." + vbCrLf)
  187.         WaitFor ("250")
  188.         Winsock1.SendData ("quit" + vbCrLf)
  189.         StatusTxt.Caption = "Disconnecting"
  190.         StatusTxt.Refresh
  191.         WaitFor ("221")
  192.         Winsock1.Close
  193.     Else
  194.         MsgBox (Str(Winsock1.State))
  195.     End If
  196. End Sub
  197. Sub WaitFor(ResponseCode As String)
  198.     Start = Timer ' Time event so won't get stuck in loop
  199.     While Len(Response) = 0
  200.         Tmr = Start - Timer
  201.         DoEvents ' Let System keep checking for incoming response **IMPORTANT**
  202.             If Tmr > 50 Then ' Time in seconds to wait
  203.                 MsgBox "SMTP service error, timed out while waiting for response", 64, MsgTitle
  204.                 Exit Sub
  205.             End If
  206.         Wend
  207.     While Left(Response, 3) <> ResponseCode
  208.         DoEvents
  209.             If Tmr > 50 Then
  210.                 MsgBox "SMTP service error, impromper response code. Code should have been: " + ResponseCode + " Code recieved: " + Response, 64, MsgTitle
  211.                 Exit Sub
  212.             End If
  213.     Wend
  214.     Response = "" ' Sent response code to blank **IMPORTANT**
  215. End Sub
  216. Private Sub Command1_Click()
  217.     SendEmail txtEmailServer.Text, txtFromName.Text, txtFromEmailAddress.Text, txtToEmailAddress.Text, txtToEmailAddress.Text, txtEmailSubject.Text, txtEmailBodyOfMessage.Text    'MsgBox ("Mail Sent")
  218.     StatusTxt.Caption = "Mail Sent"
  219.     StatusTxt.Refresh
  220.     Beep
  221.     Close
  222. End Sub
  223. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  224.     Winsock1.GetData Response ' Check for incoming response *IMPORTANT*
  225. End Sub