376 lines
13 KiB
VB.net
376 lines
13 KiB
VB.net
Imports MySql.Data.MySqlClient
|
|
Imports System.Net.Mail
|
|
|
|
Public Class mail_sending
|
|
|
|
Dim connStr As String = "server=localhost;user=root;database=dvag_mailing;port=3306;password=;charset=utf8;"
|
|
Dim connstr_dvag As String = "server=localhost;user=root;database=dvag;port=3306;password=;charset=utf8;"
|
|
Dim conn As New MySqlConnection(connStr)
|
|
Dim conn_dvag As New MySqlConnection(connstr_dvag)
|
|
Dim sqlcmd As New MySqlCommand
|
|
Dim dr
|
|
Dim dw
|
|
|
|
|
|
|
|
|
|
Private Sub bt_start_Click(sender As Object, e As EventArgs) Handles bt_start.Click
|
|
|
|
|
|
System.Windows.Forms.Application.DoEvents()
|
|
|
|
'ID einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT id FROM data where send = 0 and mailing_ohne_freigabe = 1", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
lb_id.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": ID " & lb_id.Text & " erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
|
|
|
|
If lb_id.Text = "" Then
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Keine Mailings zum verarbeiten gefunden" & vbNewLine
|
|
Else
|
|
'von einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `from` FROM data where ID = " & lb_id.Text & "", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
tb_von.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Mail von erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
'an einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `to` FROM data where ID = " & lb_id.Text & "", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
tb_an.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Mail an erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
|
|
'Betreff einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `subject` FROM data where ID = " & lb_id.Text & "", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
tb_betreff.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Betreff erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
'text einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `text` FROM data where ID = " & lb_id.Text & "", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
rtb_mail_body.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Mail Body erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
|
|
|
|
'AK einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `gruppe` FROM `zugriff` where sender_mail = '" & tb_an.Text & "'", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
tb_ak_gruppe.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Gruppe erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
'sender_mail einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `sender_mail` FROM `zugriff` where sender_mail = '" & tb_an.Text & "'", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
tb_sender_mail.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Sender Mail Adresse erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
'sender_name einlesen
|
|
Try
|
|
conn.Open()
|
|
sqlcmd = New MySqlCommand("SELECT `sender_name` FROM `zugriff` where sender_mail = '" & tb_an.Text & "'", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
tb_sender_name.Text = dr
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Sender Name erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
|
|
If tb_ak_gruppe.Text = "" Then
|
|
|
|
' Mail an geschaeftsstelle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'MsgBox("Keine Empfänger definiert!")
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Keine Empfänger definiert!" & vbNewLine
|
|
Exit Sub
|
|
Else
|
|
|
|
conn_dvag.open()
|
|
conn.open()
|
|
|
|
'Regionalforum
|
|
If InStr(tb_ak_gruppe.Text, "Forum") Then
|
|
sqlcmd = New MySqlCommand("SELECT `email` FROM `tl_member` where xt_regioforum or xt_moreregio like '%" & tb_ak_gruppe.Text & "%' and DISABLE = ''", conn_dvag)
|
|
|
|
'Arbeitskreis
|
|
ElseIf instr(tb_ak_gruppe.Text, "AK") Then
|
|
sqlcmd = New MySqlCommand("SELECT `email` FROM `tl_member` where xt_arbeitskre like '%" & tb_ak_gruppe.Text & "%' and DISABLE = ''", conn_dvag)
|
|
|
|
'Funktionaere
|
|
ElseIf instr(tb_ak_gruppe.Text, "Funktionäre") Then
|
|
sqlcmd = New MySqlCommand("SELECT `email` FROM `funktionaere`", conn)
|
|
|
|
'Vorstand
|
|
ElseIf instr(tb_ak_gruppe.Text, "Vorstand") Then
|
|
sqlcmd = New MySqlCommand("SELECT `email` FROM `vorstand`", conn)
|
|
|
|
'Mitglieder
|
|
ElseIf instr(tb_ak_gruppe.Text, "Mitglieder") Then
|
|
sqlcmd = New MySqlCommand("select email from newsletter union select email from dvag.tl.member where disable = ''", conn)
|
|
|
|
'Test
|
|
ElseIf instr(tb_ak_gruppe.Text, "TEST") Then
|
|
sqlcmd = New MySqlCommand("SELECT `email` FROM `test`", conn)
|
|
|
|
|
|
Else
|
|
' MsgBox("nichts gefunden")
|
|
|
|
|
|
End If
|
|
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Empfänger SQL gesetzt" & vbNewLine
|
|
'MsgBox(sqlcmd.ExecuteNonQuery)
|
|
rtb_log.ScrollToCaret()
|
|
Try
|
|
|
|
|
|
|
|
Dim DataAdapter As New MySqlDataAdapter
|
|
DataAdapter.SelectCommand = sqlcmd
|
|
|
|
Dim chemicalInventory As New DataTable()
|
|
DataAdapter.Fill(chemicalInventory)
|
|
|
|
'MsgBox(sqlcmd.ExecuteScalar)
|
|
|
|
For Each row As DataRow In chemicalInventory.Rows
|
|
|
|
dr = (row.Item("email"))
|
|
rtb_empfaengergruppe.Text = rtb_empfaengergruppe.Text & dr & vbNewLine
|
|
Next
|
|
|
|
|
|
|
|
Dim last = rtb_empfaengergruppe.Text.LastIndexOf("")
|
|
If last > 0 Then
|
|
|
|
rtb_empfaengergruppe.Text = rtb_empfaengergruppe.Text.Substring(0, last + 1)
|
|
Dim beforelast = rtb_empfaengergruppe.Text.LastIndexOf("")
|
|
rtb_empfaengergruppe.Text = rtb_empfaengergruppe.Text.Substring(0, beforelast + 0)
|
|
|
|
Else
|
|
|
|
'rtb_empfaengergruppe.Text = ""
|
|
|
|
End If
|
|
|
|
|
|
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Empfänger erfolgreich eingelesen" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
|
|
End If
|
|
|
|
|
|
If rtb_empfaengergruppe.Text = "" Then rtb_log.Text = rtb_log.Text & DateTime.Now & ": Es wurde keine Mail versendet" & vbNewLine
|
|
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
Dim tmp As New System.Text.StringBuilder
|
|
For Each line As String In rtb_empfaengergruppe.Lines
|
|
If line.Trim.Length > 0 Then tmp.AppendLine(line)
|
|
Next
|
|
rtb_empfaengergruppe.Text = tmp.ToString
|
|
|
|
|
|
System.Windows.Forms.Application.DoEvents()
|
|
'save_log()
|
|
mail_versenden()
|
|
'save_log()
|
|
update_sql_gesendete_mails()
|
|
'save_log()
|
|
felder_leeren()
|
|
'save_log()
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Public Sub mail_versenden()
|
|
System.Windows.Forms.Application.DoEvents()
|
|
If rtb_empfaengergruppe.Text = "" Then Exit Sub
|
|
|
|
|
|
Dim Msg As New MailMessage
|
|
Dim myCredentials As New System.Net.NetworkCredential
|
|
myCredentials.UserName = "m.haase"
|
|
myCredentials.Password = "Start2013!"
|
|
Msg.IsBodyHtml = True
|
|
Dim mySmtpsvr As New SmtpClient()
|
|
mySmtpsvr.Host = "remote.it-professional.biz" 'bei web.de
|
|
mySmtpsvr.Port = 27
|
|
mySmtpsvr.EnableSsl = 0
|
|
mySmtpsvr.UseDefaultCredentials = False
|
|
mySmtpsvr.Credentials = myCredentials
|
|
Try
|
|
'Msg.From = New MailAddress(tb_sender_mail.Text)
|
|
Msg.From = New MailAddress(tb_sender_mail.Text, tb_sender_name.Text)
|
|
Dim empfaenger As String = rtb_empfaengergruppe.Text
|
|
' MsgBox(empfaenger)
|
|
'MsgBox(empfaenger.Replace(vbLf, ", "))
|
|
empfaenger = empfaenger.Replace(vbLf, ", ")
|
|
'MsgBox(empfaenger)
|
|
empfaenger = (empfaenger.Substring(0, empfaenger.Length - 2))
|
|
'MsgBox(empfaenger)
|
|
Msg.Bcc.Add(empfaenger)
|
|
|
|
Msg.Subject = tb_betreff.Text
|
|
Msg.Body = rtb_mail_body.Text
|
|
|
|
|
|
Try
|
|
|
|
|
|
For Each item In My.Computer.FileSystem.GetFiles("C:\DVAG\Mailing\" & lb_id.Text, FileIO.SearchOption.SearchTopLevelOnly, "*.*")
|
|
'MsgBox(item)
|
|
Dim myAttch = Msg.Attachments
|
|
myAttch.Add(New System.Net.Mail.Attachment(item))
|
|
Next
|
|
|
|
Catch ex As System.Exception
|
|
MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString)
|
|
End Try
|
|
|
|
|
|
|
|
|
|
|
|
mySmtpsvr.Send(Msg)
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": E-Mail gesendet." & vbNewLine
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Auftrag für die ID " & lb_id.Text & " erfolgreich abgeschlossen." & vbNewLine
|
|
Catch ex As Exception
|
|
MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein Fehler auftritt wird eine MsgBox angezeigt
|
|
Exit Sub
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Public Sub felder_leeren()
|
|
System.Windows.Forms.Application.DoEvents()
|
|
rtb_empfaengergruppe.Clear()
|
|
tb_ak_gruppe.Clear()
|
|
tb_sender_mail.Clear()
|
|
tb_von.Clear()
|
|
tb_an.Clear()
|
|
tb_betreff.Clear()
|
|
rtb_mail_body.Clear()
|
|
lb_id.Text = ""
|
|
rtb_log.Text = ""
|
|
|
|
mail_auslesen.Show()
|
|
If My.Settings.mail_auslesen = "1" Then mail_auslesen.Timer_mail_auslesen.Start()
|
|
|
|
Me.Hide()
|
|
|
|
End Sub
|
|
|
|
Public Sub update_sql_gesendete_mails()
|
|
System.Windows.Forms.Application.DoEvents()
|
|
Try
|
|
conn.Open()
|
|
' MsgBox("ok")
|
|
sqlcmd = New MySqlCommand("update data set `send` = '1', `verarbeitet_am` = '" & DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") & "' where ID = '" & lb_id.Text & "'", conn)
|
|
dr = sqlcmd.ExecuteScalar()
|
|
|
|
conn.Close()
|
|
rtb_log.Text = rtb_log.Text & DateTime.Now & ": Vorgang als abgeschlossen in der DB markiert" & vbNewLine
|
|
rtb_log.ScrollToCaret()
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.ToString)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
|
|
System.Windows.Forms.Application.DoEvents()
|
|
Dashboard.Show()
|
|
Me.Hide()
|
|
End Sub
|
|
|
|
|
|
|
|
Public Sub save_log()
|
|
System.Windows.Forms.Application.DoEvents()
|
|
rtb_log.SaveFile("c:\DVAG\" & DateTime.Now = ("HH__dd_MM_yyyy") & "mail_log.txt", RichTextBoxStreamType.PlainText)
|
|
End Sub
|
|
|
|
|
|
End Class |