以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [原创]发送邮件按钮代码问题,提示空值?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=77862)

--  作者:fszyhzg
--  发布时间:2015/11/26 16:12:00
--  [原创]发送邮件按钮代码问题,提示空值?
狐友们,我设计了一个发送邮件窗口(如图)

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20151126155203.png
图片点击可在新窗口打开查看
窗口中的发送按钮代码如下:
Dim cb1 As String = e.Form.Controls("combobox1").value
Dim cb2 As String = e.Form.Controls("combobox2").value
Dim tb2 As String = e.Form.Controls("textbox2").value
Dim tb3 As String = e.Form.Controls("textbox3").value
Dim tb4 As String = e.Form.Controls("textbox4").value
Dim m As New MailSender
m.Host = "mail.btte.net"
m.Account = "fsxmtidc"
m.Password = "*******"
m.From = "fsxmtidc@btte.net"
m.To = cb1
m.To = cb2
m.Title = tb2
m.Content = tb3
m.AddAttachments(tb4)
m.SendAsync()
请问如何防止提示空值,例如抄送文本框为空就提示了或者附件为空也提示空值错误,请问如何解决??

--  作者:大红袍
--  发布时间:2015/11/26 16:37:00
--  
Dim cb1 As String = e.Form.Controls("combobox1").value
Dim cb2 As String = e.Form.Controls("combobox2").value
Dim tb2 As String = e.Form.Controls("textbox2").value
Dim tb3 As String = e.Form.Controls("textbox3").value
Dim tb4 As String = e.Form.Controls("textbox4").value
Dim m As New MailSender
m.Host = "mail.btte.net"
m.Account = "fsxmtidc"
m.Password = "*******"
m.From = "fsxmtidc@btte.net"
m.AddReceiver(cb1)
If cb2 > "" Then
    m.AddReceiver(cb2)
End If
m.Title = tb2
m.Content = tb3
If tb4 > "" Then
    m.AddAttachments(tb4)
End If
m.SendAsync()

--  作者:fszyhzg
--  发布时间:2015/11/26 17:09:00
--  回复:(大红袍)Dim cb1 As String = e.Form.Control...
袍哥,帮我看看这段代码,怎样才能把发邮件中的附件功能也添加进去,原代码是没有附件功能的
Dim dz As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim dk As WinForm.TextBox = e.Form.Controls("TextBox2")
Dim zh As WinForm.TextBox = e.Form.Controls("TextBox3")
Dim mm As WinForm.TextBox = e.Form.Controls("TextBox4")
Dim fjr As WinForm.TextBox = e.Form.Controls("TextBox5")
Dim sj As WinForm.combobox = e.Form.Controls("combobox1")
Dim zt As WinForm.TextBox = e.Form.Controls("TextBox6")
Dim fj As WinForm.TextBox = e.Form.Controls("TextBox7")
Dim nr As WinForm.TextBox = e.Form.Controls("TextBox8")
Dim smtp As New System.Net.Mail.SmtpClient(dz.Text,dk.Text) 
smtp.Credentials = New System.Net.NetworkCredential(zh.Text,mm.Text)
Dim mail As New System.Net.Mail.MailMessage()
mail.Subject = zt.Text
mail.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312")
mail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312")
mail.From = New System.Net.Mail.MailAddress(fjr.Text)
mail.Priority = System.Net.Mail.MailPriority.Normal
mail.IsBodyHtml = True
mail.Body = nr.Text
mail.To.Add(sj.Text)
Try  
    smtp.Send(mail)
    MessageBox.Show("发送成功")   
    Catch   
    MessageBox.Show("发送失败")  
Finally   
    mail.Dispose()
End Try

对应窗口(如图)
此主题相关图片如下:111.png
按此在新窗口浏览图片
能否参考这些内容做修改??
声明
Public ReadOnly Property Attachments As AttachmentCollection
用法
Dim instance As MailMessage
Dim value As AttachmentCollection

value = instance.Attachments
[此贴子已经被作者于2015/11/26 17:23:32编辑过]

--  作者:大红袍
--  发布时间:2015/11/26 17:31:00
--  

附件的方式

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=74157&skin=0

 


--  作者:fszyhzg
--  发布时间:2015/11/27 9:35:00
--  回复:(大红袍)Dim cb1 As String = e.Form.Control...
袍哥,附件已经搞好了,但还有一个问题就是
If cb2 > "" Then
    m.AddReceiver(cb2)
End If
m.Title = tb2
m.Content = tb3
If tb4 > "" Then
    m.AddAttachments(tb4)
End If
这样写并不能取消如果附件或抄送或内容为空时会提示错误窗口的

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2015/11/27 9:48:00
--  

Dim fj As WinForm.TextBox = e.Form.Controls("TextBox7")

 

If fj.Text > "" Then

    Dim attachment As new  System.Net.Mail.Attachment(fj.Text,  System.Net.Mime.MediaTypeNames.Application.Octet)
    message.Attachments.Add(attachment)

End If


--  作者:fszyhzg
--  发布时间:2015/11/27 10:18:00
--  回复:(大红袍)Dim fj As WinForm.TextBox = e.Form...
非常非常非常感谢袍哥,无法用言语表达对你的感激之情!袍哥万岁~~~