hai dimenticato un passaggio, il reader deve "leggere" per poterti tirare fuori i record di cui hai bisogno, visto che per quanto riguarda la tua routine è necessario leggere solo il primo record devi fare cosi:
codice:
Dim Mitt As String = ""
Dim conn As New SqlConnection()
conn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
Dim SelMail As SqlCommand = New SqlCommand("SELECT (Mail) FROM [SchedaDocente]", conn)
Dim reader As SqlDataReader
conn.Open()
reader = SelMail.ExecuteReader()
reader.Read();
Mitt = reader.GetString(0);
'Creal'oggetto MailMessage
Dim Messaggio As New MailMessage
' Imposta i parametri
Messaggio.From = New MailAddress(Mitt)
Messaggio.To.Add(Dest.Text)
Messaggio.Body = Mess.Text
Messaggio.Subject = ("RE: Messaggio bacheca")
Dim Smtp As New SmtpClient("out.alice.it")
' E-Mail in formato HTML
Messaggio.IsBodyHtml = 1
' Invia la mail
Smtp.Send(Messaggio)
conn.Close()
Response.Redirect("MailOk.aspx")
reader.ToString() come avevi scritto tu è sbagliato, in quanto ti darebbe un risultato inatteso, dovresti prelevare da questo, dopo aver letto(reader.Read()) la colonna contenente il campo mail, io ho utilizzato l'indice (0) ma potresti anche scrivere reader.GetString("mail");