frmMail.frm
上传用户:bcdefg2008
上传日期:2013-02-28
资源大小:144k
文件大小:32k
源码类别:

Email服务器

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
  4. Begin VB.Form frmMail 
  5.    BorderStyle     =   5  'Sizable ToolWindow
  6.    Caption         =   "New Message"
  7.    ClientHeight    =   7380
  8.    ClientLeft      =   60
  9.    ClientTop       =   585
  10.    ClientWidth     =   10680
  11.    ClipControls    =   0   'False
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   7380
  16.    ScaleWidth      =   10680
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   2  '屏幕中心
  19.    Begin VB.ComboBox txtTo 
  20.       Height          =   300
  21.       Left            =   1320
  22.       TabIndex        =   2
  23.       Top             =   600
  24.       Width           =   8535
  25.    End
  26.    Begin VB.Frame Frame1 
  27.       Caption         =   "Attach file"
  28.       Height          =   975
  29.       Left            =   0
  30.       TabIndex        =   9
  31.       Top             =   6360
  32.       Width           =   10575
  33.       Begin VB.CommandButton cmdAddFile 
  34.          Caption         =   "&Add..."
  35.          Height          =   255
  36.          Left            =   8640
  37.          TabIndex        =   11
  38.          Top             =   240
  39.          Width           =   1815
  40.       End
  41.       Begin VB.CommandButton cmdRemove 
  42.          Caption         =   "&Remove"
  43.          Height          =   255
  44.          Left            =   8640
  45.          TabIndex        =   12
  46.          Top             =   600
  47.          Width           =   1815
  48.       End
  49.       Begin VB.ListBox lstAttachments 
  50.          Height          =   600
  51.          Left            =   120
  52.          TabIndex        =   10
  53.          Top             =   240
  54.          Width           =   8295
  55.       End
  56.    End
  57.    Begin VB.TextBox txtBcc 
  58.       Height          =   285
  59.       Left            =   1320
  60.       TabIndex        =   5
  61.       Top             =   1080
  62.       Width           =   8535
  63.    End
  64.    Begin VB.TextBox txtSubject 
  65.       Height          =   285
  66.       Left            =   1320
  67.       TabIndex        =   6
  68.       Top             =   1560
  69.       Width           =   8535
  70.    End
  71.    Begin RichTextLib.RichTextBox rtfMail 
  72.       Height          =   4215
  73.       Left            =   0
  74.       TabIndex        =   8
  75.       Top             =   2040
  76.       Width           =   10695
  77.       _ExtentX        =   18865
  78.       _ExtentY        =   7435
  79.       _Version        =   393217
  80.       Enabled         =   -1  'True
  81.       ScrollBars      =   2
  82.       TextRTF         =   $"frmMail.frx":0000
  83.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  84.          Name            =   "MS Sans Serif"
  85.          Size            =   12
  86.          Charset         =   0
  87.          Weight          =   400
  88.          Underline       =   0   'False
  89.          Italic          =   0   'False
  90.          Strikethrough   =   0   'False
  91.       EndProperty
  92.    End
  93.    Begin MSComctlLib.Toolbar tbToolBar 
  94.       Align           =   1  'Align Top
  95.       Height          =   420
  96.       Left            =   0
  97.       TabIndex        =   0
  98.       Top             =   0
  99.       Width           =   10680
  100.       _ExtentX        =   18838
  101.       _ExtentY        =   741
  102.       ButtonWidth     =   609
  103.       ButtonHeight    =   582
  104.       Appearance      =   1
  105.       ImageList       =   "imlToolbarIcons"
  106.       _Version        =   393216
  107.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  108.          NumButtons      =   17
  109.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  110.             Key             =   "New"
  111.             Object.ToolTipText     =   "New"
  112.             ImageKey        =   "New"
  113.          EndProperty
  114.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  115.             Key             =   "Open"
  116.             Object.ToolTipText     =   "Open"
  117.             ImageKey        =   "Open"
  118.          EndProperty
  119.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  120.             Key             =   "Save"
  121.             Object.ToolTipText     =   "Save"
  122.             ImageKey        =   "Save"
  123.          EndProperty
  124.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  125.             Style           =   3
  126.          EndProperty
  127.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  128.             Key             =   "Print"
  129.             Object.ToolTipText     =   "Print"
  130.             ImageKey        =   "Print"
  131.          EndProperty
  132.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  133.             Style           =   3
  134.          EndProperty
  135.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  136.             Key             =   "Cut"
  137.             Object.ToolTipText     =   "Cut"
  138.             ImageKey        =   "Cut"
  139.          EndProperty
  140.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  141.             Key             =   "Copy"
  142.             Object.ToolTipText     =   "Copy"
  143.             ImageKey        =   "Copy"
  144.          EndProperty
  145.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  146.             Key             =   "Paste"
  147.             Object.ToolTipText     =   "Paste"
  148.             ImageKey        =   "Paste"
  149.          EndProperty
  150.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  151.             Style           =   3
  152.          EndProperty
  153.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  154.             Key             =   "Bold"
  155.             Object.ToolTipText     =   "Bold"
  156.             ImageKey        =   "Bold"
  157.          EndProperty
  158.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  159.             Key             =   "Italic"
  160.             Object.ToolTipText     =   "Italic"
  161.             ImageKey        =   "Italic"
  162.          EndProperty
  163.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  164.             Key             =   "Underline"
  165.             Object.ToolTipText     =   "Underline"
  166.             ImageKey        =   "Underline"
  167.          EndProperty
  168.          BeginProperty Button14 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  169.             Style           =   3
  170.          EndProperty
  171.          BeginProperty Button15 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  172.             Key             =   "Align Left"
  173.             Object.ToolTipText     =   "Align Left"
  174.             ImageKey        =   "Align Left"
  175.             Style           =   2
  176.          EndProperty
  177.          BeginProperty Button16 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  178.             Key             =   "Center"
  179.             Object.ToolTipText     =   "Center"
  180.             ImageKey        =   "Center"
  181.             Style           =   2
  182.          EndProperty
  183.          BeginProperty Button17 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  184.             Key             =   "Align Right"
  185.             Object.ToolTipText     =   "Align Right"
  186.             ImageKey        =   "Align Right"
  187.             Style           =   2
  188.          EndProperty
  189.       EndProperty
  190.    End
  191.    Begin MSComctlLib.ImageList imlToolbarIcons 
  192.       Left            =   7080
  193.       Top             =   6480
  194.       _ExtentX        =   1005
  195.       _ExtentY        =   1005
  196.       BackColor       =   -2147483643
  197.       ImageWidth      =   16
  198.       ImageHeight     =   16
  199.       MaskColor       =   12632256
  200.       _Version        =   393216
  201.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  202.          NumListImages   =   14
  203.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  204.             Picture         =   "frmMail.frx":0098
  205.             Key             =   "New"
  206.          EndProperty
  207.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  208.             Picture         =   "frmMail.frx":01AA
  209.             Key             =   "Open"
  210.          EndProperty
  211.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  212.             Picture         =   "frmMail.frx":02BC
  213.             Key             =   "Save"
  214.          EndProperty
  215.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  216.             Picture         =   "frmMail.frx":03CE
  217.             Key             =   "Print"
  218.          EndProperty
  219.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  220.             Picture         =   "frmMail.frx":04E0
  221.             Key             =   "Cut"
  222.          EndProperty
  223.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  224.             Picture         =   "frmMail.frx":05F2
  225.             Key             =   "Copy"
  226.          EndProperty
  227.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  228.             Picture         =   "frmMail.frx":0704
  229.             Key             =   "Paste"
  230.          EndProperty
  231.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  232.             Picture         =   "frmMail.frx":0816
  233.             Key             =   "Bold"
  234.          EndProperty
  235.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  236.             Picture         =   "frmMail.frx":0928
  237.             Key             =   "Italic"
  238.          EndProperty
  239.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  240.             Picture         =   "frmMail.frx":0A3A
  241.             Key             =   "Underline"
  242.          EndProperty
  243.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  244.             Picture         =   "frmMail.frx":0B4C
  245.             Key             =   "Align Left"
  246.          EndProperty
  247.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  248.             Picture         =   "frmMail.frx":0C5E
  249.             Key             =   "Center"
  250.          EndProperty
  251.          BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  252.             Picture         =   "frmMail.frx":0D70
  253.             Key             =   "Align Right"
  254.          EndProperty
  255.          BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  256.             Picture         =   "frmMail.frx":0E82
  257.             Key             =   "Find"
  258.          EndProperty
  259.       EndProperty
  260.    End
  261.    Begin VB.Label lblPreviousQuery 
  262.       Alignment       =   2  'Center
  263.       BackStyle       =   0  'Transparent
  264.       Caption         =   "Contacts"
  265.       BeginProperty Font 
  266.          Name            =   "Arial Black"
  267.          Size            =   8.25
  268.          Charset         =   0
  269.          Weight          =   400
  270.          Underline       =   0   'False
  271.          Italic          =   0   'False
  272.          Strikethrough   =   0   'False
  273.       EndProperty
  274.       ForeColor       =   &H80000006&
  275.       Height          =   525
  276.       Left            =   9840
  277.       TabIndex        =   3
  278.       Top             =   840
  279.       Width           =   1095
  280.    End
  281.    Begin VB.Image imgPrevious 
  282.       Height          =   345
  283.       Left            =   10200
  284.       Picture         =   "frmMail.frx":0F94
  285.       Stretch         =   -1  'True
  286.       Top             =   480
  287.       Width           =   315
  288.    End
  289.    Begin VB.Label Label4 
  290.       AutoSize        =   -1  'True
  291.       Caption         =   "Subject:"
  292.       BeginProperty Font 
  293.          Name            =   "Courier"
  294.          Size            =   12
  295.          Charset         =   0
  296.          Weight          =   400
  297.          Underline       =   0   'False
  298.          Italic          =   0   'False
  299.          Strikethrough   =   0   'False
  300.       EndProperty
  301.       Height          =   240
  302.       Left            =   165
  303.       TabIndex        =   7
  304.       Top             =   1560
  305.       Width           =   1080
  306.    End
  307.    Begin VB.Label Label2 
  308.       AutoSize        =   -1  'True
  309.       Caption         =   "Bcc:"
  310.       BeginProperty Font 
  311.          Name            =   "Courier"
  312.          Size            =   12
  313.          Charset         =   0
  314.          Weight          =   400
  315.          Underline       =   0   'False
  316.          Italic          =   0   'False
  317.          Strikethrough   =   0   'False
  318.       EndProperty
  319.       Height          =   240
  320.       Left            =   165
  321.       TabIndex        =   4
  322.       Top             =   1080
  323.       Width           =   540
  324.    End
  325.    Begin VB.Label Label1 
  326.       AutoSize        =   -1  'True
  327.       Caption         =   "To:"
  328.       BeginProperty Font 
  329.          Name            =   "Courier"
  330.          Size            =   12
  331.          Charset         =   0
  332.          Weight          =   400
  333.          Underline       =   0   'False
  334.          Italic          =   0   'False
  335.          Strikethrough   =   0   'False
  336.       EndProperty
  337.       ForeColor       =   &H80000017&
  338.       Height          =   240
  339.       Left            =   165
  340.       TabIndex        =   1
  341.       Top             =   600
  342.       Width           =   405
  343.    End
  344.    Begin VB.Menu mnuFile 
  345.       Caption         =   "文件"
  346.       Begin VB.Menu newMail 
  347.          Caption         =   "New Mail"
  348.       End
  349.       Begin VB.Menu SendMail 
  350.          Caption         =   "Send E-Mail"
  351.       End
  352.       Begin VB.Menu strich00 
  353.          Caption         =   "-"
  354.       End
  355.       Begin VB.Menu mnuFileOpen 
  356.          Caption         =   "&Import txt"
  357.       End
  358.       Begin VB.Menu mnuFileSave 
  359.          Caption         =   "&Save Message"
  360.       End
  361.       Begin VB.Menu mnuFileBar2 
  362.          Caption         =   "-"
  363.       End
  364.       Begin VB.Menu mnuFilePrint 
  365.          Caption         =   "&Print..."
  366.       End
  367.       Begin VB.Menu mnuFilePageSetup 
  368.          Caption         =   "Printer Page Setup"
  369.       End
  370.       Begin VB.Menu mnuFileBar3 
  371.          Caption         =   "-"
  372.       End
  373.       Begin VB.Menu mnuFileMRU 
  374.          Caption         =   ""
  375.          Index           =   3
  376.          Visible         =   0   'False
  377.       End
  378.       Begin VB.Menu mnuFileBar5 
  379.          Caption         =   "-"
  380.          Visible         =   0   'False
  381.       End
  382.       Begin VB.Menu mnuFileExit 
  383.          Caption         =   "E&xit"
  384.       End
  385.    End
  386.    Begin VB.Menu cmdAttachment 
  387.       Caption         =   "&Attachment"
  388.       Begin VB.Menu cmdAttachfile 
  389.          Caption         =   "Attach file"
  390.       End
  391.    End
  392.    Begin VB.Menu mnuEdit 
  393.       Caption         =   "&Edit"
  394.       Begin VB.Menu mnuEditCut 
  395.          Caption         =   "Cu&t"
  396.          Shortcut        =   ^X
  397.       End
  398.       Begin VB.Menu mnuEditCopy 
  399.          Caption         =   "&Copy"
  400.          Shortcut        =   ^C
  401.       End
  402.       Begin VB.Menu mnuEditPaste 
  403.          Caption         =   "&Paste"
  404.          Shortcut        =   ^V
  405.       End
  406.    End
  407.    Begin VB.Menu mnuView 
  408.       Caption         =   "&View"
  409.       Begin VB.Menu mnuViewOptions 
  410.          Caption         =   "&Options..."
  411.       End
  412.    End
  413.    Begin VB.Menu format 
  414.       Caption         =   "Format"
  415.       Begin VB.Menu CheckBold 
  416.          Caption         =   "Bold"
  417.       End
  418.       Begin VB.Menu CheckItalic 
  419.          Caption         =   "Italic"
  420.       End
  421.       Begin VB.Menu CheckStrikeLine 
  422.          Caption         =   "Strike Line"
  423.       End
  424.       Begin VB.Menu Line 
  425.          Caption         =   "-"
  426.       End
  427.       Begin VB.Menu mHtmlMail 
  428.          Caption         =   "Send Mail as HTML Mail"
  429.       End
  430.    End
  431. End
  432. Attribute VB_Name = "frmMail"
  433. Attribute VB_GlobalNameSpace = False
  434. Attribute VB_Creatable = False
  435. Attribute VB_PredeclaredId = True
  436. Attribute VB_Exposed = False
  437. Option Explicit
  438. ' Win32 Declarations for Print sub
  439. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  440. Const WM_CUT = &H300
  441. Const WM_COPY = &H301
  442. Const WM_PASTE = &H302
  443. Const WM_CLEAR = &H303
  444. Const WM_USER = &H400
  445. Const EM_CANUNDO = &HC6
  446. Const EM_UNDO = &HC7
  447. Private Type RECT
  448.     Left As Long
  449.     Top As Long
  450.     Right As Long
  451.     Bottom As Long
  452. End Type
  453. Private Type CharRange
  454.     cpMin As Long     ' First character of range (0 for start of doc)
  455.     cpMax As Long     ' Last character of range (-1 for end of doc)
  456. End Type
  457. Private Type FormatRange
  458.     hdc As Long       ' Actual DC to draw on
  459.     hdcTarget As Long ' Target DC for determining text formatting
  460.     rc As RECT        ' Region of the DC to draw to (in twips)
  461.     rcPage As RECT    ' Region of the entire DC (page size) (in twips)
  462.     chrg As CharRange ' Range of text to draw (see above declaration)
  463. End Type
  464. Private Const EM_FORMATRANGE As Long = WM_USER + 57
  465. Private Const PHYSICALOFFSETX As Long = 112
  466. Private Const PHYSICALOFFSETY As Long = 113
  467. Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
  468. Private ComDialog As New cmDlg
  469. ' *****************************************************************************
  470. ' Required declaration of the vbSendMail component (withevents is optional)
  471. ' You also need a reference to the vbSendMail component in the Project References
  472. ' *****************************************************************************
  473. Private WithEvents poSendMail As clsSendMail
  474. Attribute poSendMail.VB_VarHelpID = -1
  475. Private bolHtmlMail As Boolean
  476. Private Sub CheckBold_Click()
  477.     CheckBold.Checked = Not CheckBold.Checked
  478.     rtfMail.SelBold = CheckBold.Checked
  479.     
  480. If CheckBold.Checked = True Then
  481.     mHtmlMail.Checked = True
  482.     bolHtmlMail = True
  483. Else
  484.     mHtmlMail.Checked = False
  485.     bolHtmlMail = False
  486. End If
  487. If CheckBold.Checked Then
  488.     tbToolBar.Buttons("Bold").Value = tbrPressed
  489. Else
  490.     tbToolBar.Buttons("Bold").Value = tbrUnpressed
  491. End If
  492. End Sub
  493. Private Sub CheckItalic_Click()
  494.     CheckItalic.Checked = Not CheckItalic.Checked
  495.     rtfMail.SelItalic = CheckItalic.Checked
  496.     
  497. If CheckItalic.Checked = True Then
  498.     mHtmlMail.Checked = True
  499.     bolHtmlMail = True
  500. Else
  501.     mHtmlMail.Checked = False
  502.     bolHtmlMail = False
  503. End If
  504. If CheckItalic.Checked Then
  505.     tbToolBar.Buttons("Italic").Value = tbrPressed
  506. Else
  507.     tbToolBar.Buttons("Italic").Value = tbrUnpressed
  508. End If
  509. End Sub
  510. Private Sub CheckStrikeLine_Click()
  511.     CheckStrikeLine.Checked = Not CheckStrikeLine.Checked
  512.     rtfMail.SelUnderline = CheckStrikeLine.Checked
  513.     
  514. If CheckStrikeLine.Checked = True Then
  515.     mHtmlMail.Checked = True
  516.     bolHtmlMail = True
  517. Else
  518.     mHtmlMail.Checked = False
  519.     bolHtmlMail = False
  520. End If
  521. If CheckStrikeLine.Checked Then
  522.     tbToolBar.Buttons("Underline").Value = tbrPressed
  523. Else
  524.     tbToolBar.Buttons("Underline").Value = tbrUnpressed
  525. End If
  526. End Sub
  527. Private Sub cmdAddFile_Click()
  528.     On Error GoTo error
  529.     With ComDialog
  530.         .ShowOpen
  531.         
  532.         If Err = 0 Then
  533.             If Trim(.FileName) <> "" Then
  534.                 lstAttachments.AddItem .FileName
  535.               Else
  536. error:
  537.                 Exit Sub
  538.             End If
  539.         End If
  540.     End With
  541. End Sub
  542. Private Sub cmdAttachfile_Click()
  543.     Call cmdAddFile_Click
  544. End Sub
  545. Private Sub cmdRemove_Click()
  546.     On Error Resume Next
  547.       lstAttachments.RemoveItem lstAttachments.ListIndex
  548. End Sub
  549. Private Sub FilePageSetup_Click()
  550. End Sub
  551. Private Sub Form_Activate()
  552. Load_LastMail
  553. End Sub
  554. Private Sub Form_Load()
  555.   'Initiate vbSendMail.cls
  556.     Set poSendMail = New clsSendMail
  557. End Sub
  558. Private Sub Form_Unload(Cancel As Integer)
  559.   ' *****************************************************************************
  560.   ' Unload the component before quiting.
  561.   ' *****************************************************************************
  562.     Set poSendMail = Nothing
  563.     Set ComDialog = Nothing
  564. End Sub
  565. Private Sub imgPrevious_Click()
  566. PhoneBook.Show
  567. End Sub
  568. Private Sub lblPreviousQuery_Click()
  569. PhoneBook.Show
  570. End Sub
  571. Private Sub lstAttachments_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
  572.   Dim Counter As Integer
  573.     For Counter = 1 To Data.Files.Count
  574.         If (GetAttr(Data.Files.Item(Counter)) And vbDirectory) = 0 Then lstAttachments.AddItem Data.Files.Item(Counter)
  575.     Next Counter
  576. End Sub
  577. Private Sub mHtmlMail_Click()
  578.     mHtmlMail.Checked = Not mHtmlMail.Checked
  579.     bolHtmlMail = Not bolHtmlMail
  580. End Sub
  581. Private Sub mnuFilePrint_Click()
  582.     PrintRTF rtfMail, 720, 720, 720, 720
  583. End Sub
  584. Private Sub mnuFileSave_Click()
  585.   Dim strTemp As String
  586.     On Error GoTo error
  587.     With ComDialog
  588.         On Error GoTo error
  589.         .FileName = "Message.txt"
  590.         .ShowSave
  591.         If Err = 0 Then
  592.             SaveStr2File strTemp, .FileName
  593.         End If
  594.     End With
  595. Exit Sub
  596. error:
  597.     MsgBox "Sorry, can't save Message!"
  598. End Sub
  599. Private Sub newMail_Click()
  600.   Dim c As Control
  601.     'Clear all fields
  602.     For Each c In Me.Controls
  603.         If TypeOf c Is TextBox Then
  604.             c.Text = ""
  605.         End If
  606.     Next c
  607.     rtfMail.TextRTF = ""
  608.     lstAttachments.Clear
  609. End Sub
  610. Private Sub SendMail_Click()
  611.   Dim I As Integer
  612.   Dim ulimit As Integer
  613.   Dim m_strAttachedFiles As String
  614.   Dim strTemp As String
  615.   Dim c As Control
  616.     On Error GoTo error
  617.     'Error Handler
  618.     If Me.txtTo = "" Then
  619.         MsgBox "Please enter an E-Mail Address!"
  620.         Exit Sub
  621.     End If
  622.     'Check up textboxes frmmain
  623.     For Each c In frmOptions.Controls
  624.         If TypeOf c Is TextBox Or TypeOf c Is ComboBox Then
  625.             If Len(c.Text) = 0 Then
  626.                 MsgBox "Please check your Account Settings!"
  627.                 frmOptions.Show
  628.                 Exit Sub
  629.             End If
  630.         End If
  631.     Next c
  632.     'Read all Attachments
  633.     ulimit = lstAttachments.ListCount
  634.     Select Case ulimit
  635.       Case Is > 1
  636.         For I = 0 To ulimit - 1
  637.             
  638.             m_strAttachedFiles = lstAttachments.List(I) + ";" + m_strAttachedFiles
  639.         Next I
  640.             'Cut the ; from the rest
  641.             If Right$(m_strAttachedFiles, 1) = ";" Then
  642.                 m_strAttachedFiles = Left$(m_strAttachedFiles, Len(m_strAttachedFiles) - 1)
  643.             End If
  644.       Case 1
  645.             I = 0
  646.             m_strAttachedFiles = lstAttachments.List(I)
  647.     End Select
  648.     Me.Hide
  649.     frmStatus.Show
  650.     
  651.     'Convert the mail from rtf to html
  652.     
  653.     If bolHtmlMail Then
  654.         strTemp = rtfMail.TextRTF
  655.         strTemp = rtf2html.rtf2html(strTemp, "+H")
  656.     Else
  657.         strTemp = rtfMail.Text
  658.     End If
  659.     
  660.      Save_LastMail
  661.    
  662.     
  663.     With poSendMail
  664.         ' **************************************************************************
  665.         ' Optional properties for sending email, but these should be set first
  666.         ' if you are going to use them
  667.         ' **************************************************************************
  668.         .SMTPHostValidation = validate_none 'VALIDATE_HOST_DNS     ' Optional, default = VALIDATE_HOST_DNS
  669.         .EmailAddressValidation = VALIDATE_SYNTAX   ' Optional, default = VALIDATE_SYNTAX
  670.         .Delimiter = ";"                            ' Optional, default = ";" (semicolon)
  671.         ' **************************************************************************
  672.         ' Basic properties for sending email
  673.         ' **************************************************************************
  674.         .SMTPHost = frmOptions.txtServer            ' Required the fist time, optional thereafter
  675.         .from = frmOptions.txtfromaddress           ' Required the fist time, optional thereafter
  676.         .FromDisplayName = frmOptions.txtfromname   ' Optional, saved after first use
  677.         .Recipient = Me.txtTo                       ' Required, separate multiple entries with delimiter character
  678.         .Subject = Me.txtSubject                    ' Optional
  679.         .Message = strTemp                  ' Optional
  680.         .Attachment = Trim(m_strAttachedFiles)      ' Optional, separate multiple entries with delimiter character
  681.         ' **************************************************************************
  682.         ' Additional Optional properties, use as required by your application / environment
  683.         ' **************************************************************************
  684.         .AsHTML = bolHtmlMail                             ' Optional, default = FALSE, send mail as html or plain text
  685.         .UseAuthentication = frmOptions.ckLogin.Value             ' Optional, default = FALSE
  686.         .UsePopAuthentication = frmOptions.ckPopLogin.Value      ' Optional, default = FALSE
  687.         .Username = frmOptions.txtUsername          ' Optional, default = Null String
  688.         .Password = frmOptions.txtPassword                     ' Optional, default = Null String, value is NOT saved
  689.         .POP3Host = frmOptions.txtPop3Server
  690.         ' **************************************************************************
  691.         ' OK, all of the properties are set, send the email...
  692.         ' **************************************************************************
  693.         .send                                       ' Required
  694.     End With
  695.     
  696.    
  697.     Unload frmStatus
  698. Exit Sub
  699. error:
  700.     MsgBox "Sorry an error occurred while sending the mail!"
  701. End Sub
  702. Private Sub tbToolBar_ButtonClick(ByVal Button As MSComCtlLib.Button)
  703.   
  704.     On Error Resume Next
  705.       Select Case Button.Key
  706.         Case "New"
  707.           newMail_Click
  708.         Case "Open"
  709.           mnuFileOpen_Click
  710.         Case "Save"
  711.           mnuFileSave_Click
  712.         Case "Print"
  713.           PrintRTF rtfMail, 720, 720, 720, 720
  714.         Case "Cut"
  715.           mnuEditCut_Click
  716.         Case "Copy"
  717.           mnuEditCopy_Click
  718.         Case "Paste"
  719.           mnuEditPaste_Click
  720.         Case "Bold"
  721.           CheckBold_Click
  722.         Case "Italic"
  723.           CheckItalic_Click
  724.         Case "Underline"
  725.             
  726.           CheckStrikeLine_Click
  727.         Case "Align Left"
  728.           rtfMail.SelAlignment = rtfLeft
  729.           rtfMail.SetFocus
  730.           bolHtmlMail = False
  731.           Me.mHtmlMail.Checked = False
  732.         Case "Center"
  733.           rtfMail.SelAlignment = rtfCenter
  734.           rtfMail.SetFocus
  735.           bolHtmlMail = True
  736.           Me.mHtmlMail.Checked = True
  737.         Case "Align Right"
  738.           rtfMail.SelAlignment = rtfRight
  739.           rtfMail.SetFocus
  740.           bolHtmlMail = True
  741.           Me.mHtmlMail.Checked = True
  742.       End Select
  743. End Sub
  744. Private Sub mnuViewOptions_Click()
  745.     frmOptions.Show vbModal, Me
  746. End Sub
  747. Private Sub mnuEditPaste_Click()
  748.     rtfMail.SelText = Clipboard.GetText
  749. End Sub
  750. Private Sub mnuEditCopy_Click()
  751.     If rtfMail.SelLength > 0 Then
  752.         Clipboard.SetText rtfMail.SelText
  753.     End If
  754. End Sub
  755. Private Sub mnuEditCut_Click()
  756.     If rtfMail.SelLength > 0 Then
  757.         Clipboard.Clear
  758.         Clipboard.SetText rtfMail.SelText
  759.         rtfMail.SelText = ""
  760.     End If
  761. End Sub
  762. Private Sub mnuFileExit_Click()
  763.   'unload the form
  764.     Unload Me
  765. End Sub
  766. Private Sub mnuFilePageSetup_Click()
  767.     On Error Resume Next
  768.       With ComDialog
  769.           .DialogTitle = "Page Setup"
  770.           .CancelError = True
  771.           .ShowPrinter
  772.       End With
  773. End Sub
  774. Private Sub mnuFileOpen_Click()
  775.   Dim sFile As String
  776.     With ComDialog
  777.         .DialogTitle = "Open"
  778.         .CancelError = False
  779.         'ToDo: set the flags and attributes of the common dialog control
  780.         .Filter = "Import Message (*.*)|*.*"
  781.         .ShowOpen
  782.         If Len(.FileName) = 0 Then
  783.             Exit Sub
  784.         End If
  785.         sFile = .FileName
  786.         rtfMail.LoadFile sFile
  787.     End With
  788. End Sub
  789. ' *****************************************************************************
  790. ' The following four Subs capture the Events fired by the vbSendMail component
  791. ' *****************************************************************************
  792. Private Sub poSendMail_Progress(lPercentCompete As Long)
  793.   ' vbSendMail 'Progress Event'
  794.     With frmMain
  795.         .lstStatus.AddItem lPercentCompete
  796.         .lstStatus.ListIndex = .lstStatus.ListCount - 1
  797.         .lstStatus.ListIndex = -1
  798.     End With
  799. End Sub
  800. Private Sub poSendMail_SendFailed(Explanation As String)
  801.   ' vbSendMail 'SendFailed Event
  802.     MsgBox ("Your attempt to send mail failed for the following reason(s): " & vbCrLf & Explanation)
  803.     frmStatus.Hide
  804. End Sub
  805. Private Sub poSendMail_SendSuccesful()
  806.   ' vbSendMail 'SendSuccesful Event'
  807.     frmStatus.Hide
  808.     Unload frmMail
  809. End Sub
  810. Private Sub poSendMail_Status(Status As String)
  811.   ' vbSendMail 'Status Event'
  812.     With frmMain
  813.         .lstStatus.AddItem Status
  814.         .lstStatus.ListIndex = .lstStatus.ListCount - 1
  815.         .lstStatus.ListIndex = -1
  816.     End With
  817.     frmStatus.Status = Status
  818. End Sub
  819. Public Sub PrintRTF(RTF As RichTextBox, LeftMarginWidth As Long, TopMarginHeight, RightMarginWidth, BottomMarginHeight)
  820.   '** Description:
  821.   '** Print the active document
  822.     On Error GoTo PrintError
  823.   Dim LeftOffset As Long, TopOffset As Long
  824.   Dim LeftMargin As Long, TopMargin As Long
  825.   Dim RightMargin As Long, BottomMargin As Long
  826.   Dim fr As FormatRange
  827.   Dim rcDrawTo As RECT
  828.   Dim rcPage As RECT
  829.   Dim TextLength As Long
  830.   Dim NextCharPosition As Long
  831.   Dim r As Long
  832.     ' Start a print job to get a valid Printer.hDC
  833.     Printer.Print Space(1)
  834.     Printer.ScaleMode = vbTwips
  835.     ' Get the offsett to the printable area on the page in twips
  836.     LeftOffset = Printer.ScaleX(GetDeviceCaps(Printer.hdc, PHYSICALOFFSETX), vbPixels, vbTwips)
  837.     TopOffset = Printer.ScaleY(GetDeviceCaps(Printer.hdc, PHYSICALOFFSETY), vbPixels, vbTwips)
  838.     ' Calculate the Left, Top, Right, and Bottom margins
  839.     LeftMargin = LeftMarginWidth - LeftOffset
  840.     TopMargin = TopMarginHeight - TopOffset
  841.     RightMargin = (Printer.Width - RightMarginWidth) - LeftOffset
  842.     BottomMargin = (Printer.Height - BottomMarginHeight) - TopOffset
  843.     ' Set printable area rect
  844.     rcPage.Left = 0
  845.     rcPage.Top = 0
  846.     rcPage.Right = Printer.ScaleWidth
  847.     rcPage.Bottom = Printer.ScaleHeight
  848.     ' Set rect in which to print (relative to printable area)
  849.     rcDrawTo.Left = LeftMargin
  850.     rcDrawTo.Top = TopMargin
  851.     rcDrawTo.Right = RightMargin
  852.     rcDrawTo.Bottom = BottomMargin
  853.     ' Set up the print instructions
  854.     fr.hdc = Printer.hdc   ' Use the same DC for measuring and rendering
  855.     fr.hdcTarget = Printer.hdc  ' Point at printer hDC
  856.     fr.rc = rcDrawTo            ' Indicate the area on page to draw to
  857.     fr.rcPage = rcPage          ' Indicate entire size of page
  858.     fr.chrg.cpMin = 0           ' Indicate start of text through
  859.     fr.chrg.cpMax = -1          ' end of the text
  860.     ' Get length of text in RTF
  861.     TextLength = Len(RTF.Text)
  862.     ' Loop printing each page until done
  863.     Do
  864.         ' Print the page by sending EM_FORMATRANGE message
  865.         NextCharPosition = SendMessage(RTF.hwnd, EM_FORMATRANGE, True, fr)
  866.         If NextCharPosition >= TextLength Then Exit Do  'If done then exit
  867.         fr.chrg.cpMin = NextCharPosition ' Starting position for next page
  868.         Printer.NewPage                  ' Move on to next page
  869.         Printer.Print Space(1) ' Re-initialize hDC
  870.         fr.hdc = Printer.hdc
  871.         fr.hdcTarget = Printer.hdc
  872.     Loop
  873.     ' Commit the print job
  874.     Printer.EndDoc
  875.     ' Allow the RTF to free up memory
  876.     r = SendMessage(RTF.hwnd, EM_FORMATRANGE, False, ByVal CLng(0))
  877. PrintError:
  878. End Sub
  879. Public Sub SaveStr2File(strInput As String, strPathName As String)
  880.   Dim iFreeFile As Integer
  881.     '-----
  882.     ' Reference to a free file
  883.     '-----
  884.     iFreeFile = FreeFile
  885.     Open strPathName For Binary As iFreeFile
  886.     '-----
  887.     ' Save the total size of the array in a variable, this stops
  888.     ' VB to calculate the size each time it comes into the loop,
  889.     ' which of course, takes (much) more time then this sollution
  890.     '-----
  891.     Put iFreeFile, , strInput
  892.     Close iFreeFile
  893. End Sub
  894. Private Sub Save_LastMail()
  895. Dim MailNumber As Integer
  896. If Not CheckExistence(txtTo, CStr(txtTo)) Then
  897.     MailNumber = txtTo.ListCount
  898.     If MailNumber > 10 Then MailNumber = 9
  899.     SaveIni "Last Addresses", CStr(MailNumber), txtTo.Text
  900. End If
  901. End Sub
  902. Private Sub Load_LastMail()
  903. Dim Counter As Integer
  904. Dim strTemp As String
  905. 'Load Last 10 Adresses
  906. For Counter = 9 To 0 Step -1
  907.     strTemp = LoadIni("Last Addresses", CStr(Counter))
  908.     If strTemp <> "" Then
  909.         txtTo.AddItem strTemp
  910.     End If
  911. Next
  912. End Sub
  913. ':) Ulli's VB Code Formatter V2.12.7 (19.06.2002 23:12:58) 43 + 526 = 569 Lines