Sub send_email()
oMsg.From = New MailAddress("Do_Not_Reply@business.com", "Do Not Reply")
oMsg.To.Add(build_lists("Email_To"))
oMsg.CC.Add(build_lists("Email_CC"))
oMsg.Subject = ("Business Downtime Reports")
oMsg.IsBodyHtml = True
Try
'Delete out the old files from the reports folder
delete_old_files()
'Add the attachments to the email object
add_attachment()
'Setup the message body for HTML
Dim mbody As String = "<table width=600px border=1> " & _
"<tr> " & _
"<td><img src='cid:Business_Logo' alt='Logo' width=150 height=75/></td> " & _
"</tr> " & _
"<tr> " & _
"<td> " & _
"<table> " & _
"<tr> " & _
"<td> " & _
"<p>Hello,</p> " & _
"<p>Attached are the business quality downtime reports for the previous day. </p> " & _
"<p>You are setup as a recipient of this automated email. If you wish to no longer receive the email, please submit a ticket to the system using the following link:</p> " & _
"<p></p> " & _
"<p>Thank You,</p> " & _
"<p>Manufacturing Execution Team</p> " & _
"<p><strong></strong></p> " & _
"<p> </p> " & _
"</td> " & _
"<td> " & _
"<img src='cid:Business_Background' alt='Background Image' width=92 height=407/></td> " & _
"</tr> " & _
"</table> " & _
"</td> " & _
"</tr> " & _
"</table>"
'Create the alternate view for email images to appear
Dim alternateView As AlternateView = alternateView.CreateAlternateViewFromString(mbody, Nothing, "text/html")
'Create the linked resource for each image
Dim logo As New LinkedResource(System.AppDomain.CurrentDomain.BaseDirectory & "Images\Business-Logo.jpg", "image/jpeg")
logo.ContentId = "Business_Logo"
logo.TransferEncoding = Net.Mime.TransferEncoding.Base64
Dim logo2 As New LinkedResource(System.AppDomain.CurrentDomain.BaseDirectory & "Images\BusinessBackground.jpg", "image/jpeg")
logo2.ContentId = "Business_Background"
logo2.TransferEncoding = Net.Mime.TransferEncoding.Base64
alternateView.LinkedResources.Add(logo)
alternateView.LinkedResources.Add(logo2)
oMsg.AlternateViews.Add(alternateView)
oMsg.Body = Nothing
'Msg.Body = mbody.ToString
'Configure the email server
Dim client As New SmtpClient()
client.Host = "smtprelay"
client.Send(oMsg)
'Add a comment to the event log
myEventLog("Business Email was sent")
Catch ex As Exception
myEventLog("Error Sending the Email" & ex.ToString)
myEventLog("Inner Exception is " & ex.InnerException.ToString)
Finally
'Dispose of the mail object
oMsg.Dispose()
End Try
End Sub
Sub add_attachment()
'Function that will add the attachments to the email
Dim cryRpt As New ReportDocument()
Dim crtableLogoninfos As New TableLogOnInfos
Dim crtableLogoninfo As New TableLogOnInfo
Dim myConnectionInfo As New ConnectionInfo()
Dim CrTables As Tables
Dim CrTable As Table
Dim files As String() = Directory.GetFiles(System.AppDomain.CurrentDomain.BaseDirectory & "CrystalSource\")
With myConnectionInfo
.UserID = "username"
.ServerName = "SERVERNAME"
.Password = "password"
End With
Try
'Loop through the Reports folder
For Each fileName In files
'Load it to the Crystal Report Engine
cryRpt.Load(fileName)
CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = myConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
'Strip the name off the file fro the .rpt extension
fileName = Path.GetFileName(fileName)
If fileName.EndsWith(".rpt") Then
fileName = Left$(fileName, fileName.Length - 4)
End If
'Setup the Crystal Reports Exporter
Dim crExportOptions As ExportOptions
Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
CrDiskFileDestinationOptions.DiskFileName = System.AppDomain.CurrentDomain.BaseDirectory & "Reports\" & fileName & "-" & System.DateTime.Now.ToString("MM-dd-yyyy") & ".pdf"
crExportOptions = cryRpt.ExportOptions
With crExportOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
.DestinationOptions = CrDiskFileDestinationOptions
.FormatOptions = CrFormatTypeOptions
End With
cryRpt.Export()
Dim pdfFile As String = System.AppDomain.CurrentDomain.BaseDirectory & "Reports\" & fileName & "-" & System.DateTime.Now.ToString("MM-dd-yyyy") & ".pdf"
oMsg.Attachments.Add(New Attachment(pdfFile, System.Net.Mime.MediaTypeNames.Application.Pdf))
'oMsg.Attachments.Add(New Attachment(pdfFile))
'Clear out the fileName and crptName variable
fileName = ""
Next
Catch ex As Exception
myEventLog("Failed to create the attachments" & ex.Message)
End Try
End Sub
ASKER
ASKER
The .NET Framework is not specific to any one programming language; rather, it includes a library of functions that allows developers to rapidly build applications. Several supported languages include C#, VB.NET, C++ or ASP.NET.
TRUSTED BY