Advertisement
Guest User

Untitled

a guest
May 6th, 2017
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 14.83 KB | None | 0 0
  1. Imports System.IO
  2. Imports OSSMTP
  3. Imports VBA
  4.  
  5. Module Module1
  6.     Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal HINet As Integer) As Integer
  7.     Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Integer, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Integer) As Integer
  8.     Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Integer, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Integer, ByVal lFlags As Integer, ByVal lContext As Integer) As Integer
  9.     Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hFtpSession As Integer, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Integer, ByVal dwFlags As Integer, ByVal dwContext As Integer) As Boolean
  10.     Private Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Integer, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Integer, ByVal dwContext As Integer) As Boolean
  11.  
  12.     Public strError As String
  13.  
  14.     Sub Main()
  15.         Dim FTPIP As String
  16.         Dim FTPUSERNAME As String
  17.         Dim FTPPASSWORD As String
  18.         Dim FTPDIRECTORY As String
  19.         Dim SMTPIP As String
  20.         Dim SMTPUSERNAME As String
  21.         Dim SMTPPASSWORD As String
  22.         Dim SMTPFROM As String
  23.         Dim SMTPTO As String
  24.         Dim SMTPCC As String
  25.         Dim DAILYDIRECTORY As String
  26.         Dim ARCHIVEDIRECTORY As String
  27.         Dim BACKUPDIRECTORY As String
  28.         Dim LFUSER As String
  29.         Dim LOGFILE As String = "logs/" & Date.Now.ToString("yyyy") & "/" & Date.Now.ToString("MM") & "/" & Date.Now.ToString("yyyyMMdd") & ".txt"
  30.         Dim errors As Integer
  31.  
  32.         Dim finfo As New System.IO.FileInfo(LOGFILE)
  33.         Dim dir As System.IO.DirectoryInfo = finfo.Directory
  34.         If Not dir.Exists Then
  35.             dir.Create()
  36.         End If
  37.  
  38.         If File.Exists(LOGFILE) Then
  39.             File.Delete(LOGFILE)
  40.         End If
  41.         Try
  42.             strError = "Start time:" & vbCrLf & vbCrLf & Now & vbCrLf
  43.  
  44.             FTPIP = "10.20.35.5"
  45.             FTPUSERNAME = "webftp"
  46.             FTPPASSWORD = "webftp"
  47.             FTPDIRECTORY = "/documents/D83/tiffs/"
  48.             SMTPIP = "some@user.com"
  49.             SMTPUSERNAME = "username"
  50.             SMTPPASSWORD = "password"
  51.             LFUSER = "No"
  52.             SMTPFROM = "user@user.com"
  53.             SMTPTO = "someone@somewhere.com"
  54.             DAILYDIRECTORY = "C:\DCDocs\Daily\"
  55.             ARCHIVEDIRECTORY = "C:\DCDocs\Archive\"
  56.             BACKUPDIRECTORY = "F:\Backup\"
  57.  
  58.             If File.Exists("dcendofday.ini") Then
  59.                 Dim delimStr As String = "="
  60.                 Dim delimiter As Char() = delimStr.ToCharArray()
  61.                 Dim sr As System.io.StreamReader = New System.io.StreamReader("dcendofday.ini")
  62.                 Do While sr.Peek() >= 0
  63.                     Dim a() As String
  64.                     a = sr.ReadLine.Split(delimiter)
  65.                     'Console.WriteLine("+" & a(0) & "+" & a(1) & "+")
  66.                     If a(0).ToUpper = "FTPIP" And a(1) <> "" Then
  67.                         FTPIP = a(1)
  68.                     ElseIf a(0).ToUpper = "FTPUSERNAME" And a(1) <> "" Then
  69.                         FTPUSERNAME = a(1)
  70.                     ElseIf a(0).ToUpper = "FTPPASSWORD" And a(1) <> "" Then
  71.                         FTPPASSWORD = a(1)
  72.                     ElseIf a(0).ToUpper = "FTPDIRECTORY" And a(1) <> "" Then
  73.                         If a(1).Substring(a(1).Length - 1, 1) <> "/" Then
  74.                             a(1) = a(1) & "/"
  75.                         End If
  76.                         If a(1).Substring(0, 1) <> "/" Then
  77.                             a(1) = "/" & a(1)
  78.                         End If
  79.                         FTPDIRECTORY = a(1)
  80.                     ElseIf a(0).ToUpper = "SMTPFROM" And a(1) <> "" Then
  81.                         SMTPFROM = a(1)
  82.                     ElseIf a(0).ToUpper = "SMTPTO" And a(1) <> "" Then
  83.                         SMTPTO = a(1)
  84.                     ElseIf a(0).ToUpper = "SMTPCC" And a(1) <> "" Then
  85.                         SMTPCC = a(1)
  86.                     ElseIf a(0).ToUpper = "DAILYDIRECTORY" And a(1) <> "" Then
  87.                         If a(1).Substring(a(1).Length - 1, 1) = "\" Then
  88.                             DAILYDIRECTORY = a(1)
  89.                         Else
  90.                             DAILYDIRECTORY = a(1) & "\"
  91.                         End If
  92.                     ElseIf a(0).ToUpper = "ARCHIVEDIRECTORY" And a(1) <> "" Then
  93.                         If a(1).Substring(a(1).Length - 1, 1) = "\" Then
  94.                             ARCHIVEDIRECTORY = a(1)
  95.                         Else
  96.                             ARCHIVEDIRECTORY = a(1) & "\"
  97.                         End If
  98.                     ElseIf a(0).ToUpper = "BACKUPDIRECTORY" And a(1) <> "" Then
  99.                         If a(1).Substring(a(1).Length - 1, 1) = "\" Then
  100.                             BACKUPDIRECTORY = a(1)
  101.                         Else
  102.                             BACKUPDIRECTORY = a(1) & "\"
  103.                         End If
  104.                     ElseIf a(0).ToUpper = "LFUSER" And a(1) <> "" Then
  105.                         LFUSER = a(1)
  106.                     End If
  107.                 Loop
  108.                 sr.Close()
  109.             End If
  110.  
  111.             strError = strError & vbCrLf & "Parameters:" & vbCrLf & vbCrLf & "FTPIP = " & FTPIP & vbCrLf & "FTPUSERNAME = " & FTPUSERNAME & vbCrLf & "FTPPASSWORD = " & FTPPASSWORD & vbCrLf & "FTPDIRECTORY = " & FTPDIRECTORY & vbCrLf & "LFUSER = " & LFUSER & vbCrLf & "SMTPFROM = " & SMTPFROM & vbCrLf & "SMTPTO = " & SMTPTO & vbCrLf & "SMTPCC = " & SMTPCC & vbCrLf & "DAILYDIRECTORY = " & DAILYDIRECTORY & vbCrLf & "ARCHIVEDIRECTORY = " & ARCHIVEDIRECTORY & vbCrLf & "BACKUPDIRECTORY = " & BACKUPDIRECTORY & vbCrLf & vbCrLf & "File copy/FTP process:" & vbCrLf
  112.  
  113.             Dim INet, INetConn As Integer
  114.             Dim RC As Boolean
  115.             Dim resFile As String = ""
  116.             INet = InternetOpen("FTP Connection", 1, vbNullString, vbNullString, 0)
  117.             INetConn = InternetConnect(INet, FTPIP, 21, FTPUSERNAME, FTPPASSWORD, 1, 0, 0)
  118.  
  119.             Dim x As Integer
  120.             Dim y As Integer
  121.             Dim z As Integer
  122.  
  123.             Dim Directory As New System.IO.DirectoryInfo(DAILYDIRECTORY)
  124.             Dim file1 As System.IO.FileInfo
  125.             For Each file1 In Directory.GetFiles
  126.                 If file1.Extension.ToLower.ToString = ".tiff" Or file1.Extension.ToLower.ToString = ".tif" Then
  127.                     x = x + 1
  128.                 End If
  129.             Next
  130.             If x = 0 Then
  131.                 strError = strError & vbCrLf & "Warning: No TIFF files were found in " & DAILYDIRECTORY & vbCrLf
  132.             Else
  133.                 strError = strError & vbCrLf & "Found " & x & " files in " & DAILYDIRECTORY & vbCrLf
  134.             End If
  135.  
  136.             For Each file1 In Directory.GetFiles
  137.                 If file1.Extension.ToLower.ToString = ".tiff" Or file1.Extension.ToLower.ToString = ".tif" Then
  138.                     strError = strError & vbCrLf & "Trying FTP: " & DAILYDIRECTORY + file1.Name & " to " & FTPDIRECTORY
  139.                     RC = FtpPutFile(INetConn, DAILYDIRECTORY + file1.Name, FTPDIRECTORY + file1.Name, False, 0)
  140.                     If RC = True Then
  141.                         y = y + 1
  142.                         strError = strError & " - success." & vbCrLf
  143.                         If LFUSER.ToLower <> "yes" Then
  144.                             strError = strError & "Trying copy: " & DAILYDIRECTORY + file1.Name & " to " & ARCHIVEDIRECTORY
  145.  
  146.                             file1.CopyTo(ARCHIVEDIRECTORY + file1.Name, True)
  147.  
  148.                             If File.Exists(ARCHIVEDIRECTORY + file1.Name) Then
  149.                                 strError = strError & " - success." & vbCrLf
  150.                             Else
  151.                                 strError = strError & " - failure." & vbCrLf
  152.                                 errors = 1
  153.                             End If
  154.  
  155.                             strError = strError & "Trying move: " & DAILYDIRECTORY + file1.Name & " to " & BACKUPDIRECTORY
  156.  
  157.                             If File.Exists(BACKUPDIRECTORY + file1.Name) Then
  158.                                 File.Delete(BACKUPDIRECTORY + file1.Name)
  159.                             End If
  160.  
  161.                             file1.MoveTo(BACKUPDIRECTORY + file1.Name)
  162.  
  163.                             If File.Exists(BACKUPDIRECTORY + file1.Name) Then
  164.                                 strError = strError & " - success." & vbCrLf
  165.                             Else
  166.                                 strError = strError & " - failure." & vbCrLf
  167.                                 errors = 1
  168.                             End If
  169.                         Else
  170.                             strError = strError & "Trying delete: " & DAILYDIRECTORY + file1.Name
  171.  
  172.                             If File.Exists(DAILYDIRECTORY + file1.Name) Then
  173.                                 File.Delete(DAILYDIRECTORY + file1.Name)
  174.                             End If
  175.                             If File.Exists(DAILYDIRECTORY + file1.Name) Then
  176.                                 strError = strError & " - failure." & vbCrLf
  177.                             Else
  178.                                 strError = strError & " - success." & vbCrLf
  179.                             End If
  180.                         End If
  181.                     Else
  182.                         strError = strError & " - failure." & vbCrLf
  183.                         errors = 1
  184.                     End If
  185.                 End If
  186.             Next
  187.  
  188.             InternetCloseHandle(INetConn)
  189.             InternetCloseHandle(INet)
  190.  
  191.             If x > y Then
  192.                 strError = strError & vbCrLf & "Error: " & x - y & " files failed to be sent." & vbCrLf
  193.             ElseIf x > 0 Then
  194.                 strError = strError & vbCrLf & "Success: All files sent successfully." & vbCrLf
  195.             End If
  196.  
  197.             strError = strError & vbCrLf & "End time:" & vbCrLf & vbCrLf & Now & vbCrLf
  198.  
  199.             If errors > 0 Then
  200.                 Dim oSMTP As OSSMTP.SMTPSession
  201.                 oSMTP = New OSSMTP.SMTPSession
  202.                 Dim objAttachment As New OSSMTP.Attachment
  203.                 objAttachment.AttachmentName = "dc.ini"
  204.                 objAttachment.ContentTransferEncoding = encoding_type.enc7Bit
  205.                 objAttachment.FilePath = "dc.ini"
  206.                 oSMTP.Attachments.Add(objAttachment)
  207.                 With oSMTP
  208.                     .Server = SMTPIP
  209.                     .AuthenticationType = authentication_type.AuthLogin
  210.                     .Username = SMTPUSERNAME
  211.                     .Password = SMTPPASSWORD
  212.                     .MailFrom = SMTPFROM
  213.                     .SendTo = SMTPTO
  214.                     If SMTPCC <> "" Then
  215.                         .CC = SMTPFROM & "," & SMTPCC
  216.                     Else
  217.                         .CC = SMTPFROM
  218.                     End If
  219.                     .MessageSubject = "DC End Of Day Error report for " & Date.Now.ToString("MM/dd/yyyy")
  220.                     .MessageText = strError
  221.                     .SendEmail()
  222.                 End With
  223.                 oSMTP = Nothing
  224.             Else
  225.                 If x > 0 Then
  226.                     Dim oSMTP As OSSMTP.SMTPSession
  227.                     oSMTP = New OSSMTP.SMTPSession
  228.                     With oSMTP
  229.                         .Server = SMTPIP
  230.                         .AuthenticationType = authentication_type.AuthLogin
  231.                         .Username = SMTPUSERNAME
  232.                         .Password = SMTPPASSWORD
  233.                         .MailFrom = SMTPFROM
  234.                         .SendTo = SMTPFROM
  235.                         If SMTPCC <> "" Then
  236.                             .CC = SMTPCC
  237.                         End If
  238.                         .MessageSubject = "DC End Of Day Success report for " & Date.Now.ToString("MM/dd/yyyy")
  239.                         .MessageText = strError
  240.                         .SendEmail()
  241.                     End With
  242.                     oSMTP = Nothing
  243.                 Else
  244.                     Dim oSMTP As OSSMTP.SMTPSession
  245.                     oSMTP = New OSSMTP.SMTPSession
  246.                     With oSMTP
  247.                         .Server = SMTPIP
  248.                         .AuthenticationType = authentication_type.AuthLogin
  249.                         .Username = SMTPUSERNAME
  250.                         .Password = SMTPPASSWORD
  251.                         .MailFrom = SMTPFROM
  252.                         .SendTo = SMTPFROM
  253.                         If SMTPCC <> "" Then
  254.                             .CC = SMTPCC
  255.                         End If
  256.                         .MessageSubject = "DC End Of Day Warning report for " & Date.Now.ToString("MM/dd/yyyy")
  257.                         .MessageText = strError
  258.                         .SendEmail()
  259.                     End With
  260.                     oSMTP = Nothing
  261.                 End If
  262.             End If
  263.  
  264.             Dim sr1 As New StreamWriter(LOGFILE)
  265.             sr1.Write(strError)
  266.             sr1.Close()
  267.  
  268.         Catch ex As Exception
  269.             If ex.InnerException Is Nothing Then
  270.                 strError = strError & vbCrLf & "Exception: " & ex.Message.ToString & vbCrLf
  271.             Else
  272.                 strError = strError & vbCrLf & "Exception: " & ex.Message.ToString & vbCrLf & "Inner Exception: " & ex.InnerException.ToString & vbCrLf
  273.             End If
  274.             strError = strError & vbCrLf & "End time:" & vbCrLf & vbCrLf & Now & vbCrLf
  275.             Dim sr3 As New StreamWriter(LOGFILE)
  276.             sr3.Write(strError)
  277.             sr3.Close()
  278.             Dim oSMTP As OSSMTP.SMTPSession
  279.             oSMTP = New OSSMTP.SMTPSession
  280.             Dim objAttachment As New OSSMTP.Attachment
  281.             objAttachment.AttachmentName = "dcendofday.ini"
  282.             objAttachment.ContentTransferEncoding = encoding_type.enc7Bit
  283.             objAttachment.FilePath = "dcendofday.ini"
  284.             oSMTP.Attachments.Add(objAttachment)
  285.             With oSMTP
  286.                 .Server = SMTPIP
  287.                 .AuthenticationType = authentication_type.AuthLogin
  288.                 .Username = SMTPUSERNAME
  289.                 .Password = SMTPPASSWORD
  290.                 .MailFrom = SMTPFROM
  291.                 .SendTo = SMTPTO
  292.                 If SMTPCC <> "" Then
  293.                     .CC = SMTPFROM & "," & SMTPCC
  294.                 Else
  295.                     .CC = SMTPFROM
  296.                 End If
  297.                 .MessageSubject = "DC End Of Day Error report for " & Date.Now.ToString("MM/dd/yyyy")
  298.                 .MessageText = strError
  299.                 .SendEmail()
  300.             End With
  301.             oSMTP = Nothing
  302.         End Try
  303.     End Sub
  304. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement