以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 老大,帮我看看我的发送邮件的代码有什么问题? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19146)
|
-- 作者:blackzhu
-- 发布时间:2012/4/28 17:46:00
-- 老大,帮我看看我的发送邮件的代码有什么问题?
DataTables("邮件系统").Save Dim cmd As New SQLCommand Dim dt As DataTable cmd.ConnectionName = "Server" cmd.CommandText = "SELECT * From {部门人员} Where [人员名称] = \'" & _UserName & "\'" dt = cmd.ExecuteReader If dt.DataRows.Count > 0 Then Dim m As New MailSender m.Host = dt.DataRows(0)("SMTP设置_服务器") m.Account = dt.DataRows(0)("邮件帐号") m.Password = dt.DataRows(0)("邮件密码") m.From = dt.DataRows(0)("Email") m.To = Tables("邮件系统").Current("收件人") m.Title = Tables("邮件系统").Current("主题") m.Content = Tables("邮件系统").Current("内容") Dim Multi1 As String = Tables("邮件系统").Current("附件") Dim Values1() As String m.SendAsync() End If MessageBox.Show("邮件发送成功")
这个发送没有问题,可以成功.
|
-- 作者:blackzhu
-- 发布时间:2012/4/28 17:48:00
--
DataTables("邮件系统").Save Dim cmd As New SQLCommand Dim dt As DataTable cmd.ConnectionName = "Server" cmd.CommandText = "SELECT * From {部门人员} Where [人员名称] = \'" & _UserName & "\'" dt = cmd.ExecuteReader If dt.DataRows.Count > 0 Then Dim m As New MailSender m.Host = dt.DataRows(0)("SMTP设置_服务器") m.Account = dt.DataRows(0)("邮件帐号") m.Password = dt.DataRows(0)("邮件密码") m.From = dt.DataRows(0)("Email") m.To = Tables("邮件系统").Current("收件人") Dim Multi As String = Tables("邮件系统").Current("抄送") Dim Values() As String Values = Multi.split(",") For Index As Integer = 1 To Values.Length - 1 m.AddReceiver(Values(Index)) Next m.Title = Tables("邮件系统").Current("主题") m.Content = Tables("邮件系统").Current("内容") m.SendAsync() End If MessageBox.Show("邮件发送成功")
加了多人收件,不起作用,我的多人的代码写法有问题吗?
另外附件也是这样的写法,有问题吗?
Dim Multi1 As String = Tables("邮件系统").Current("附件") Dim Values1() As String Values1 = Multi1.split(",") For Index1 As Integer = 1 To Values1.Length - 1 m.AddAttachments(Values1(Index1)) Next
|
-- 作者:blackzhu
-- 发布时间:2012/4/28 17:50:00
--
后来我把代码修改了一下:
DataTables("邮件系统").Save Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT * From {部门人员} Where [人员名称] = \'" & _UserName & "\'" dt = cmd.ExecuteReader Dim m As New MailSender If dt.DataRows.Count > 0 Then m.Host = dt.DataRows(0)("SMTP设置_服务器") m.Account = dt.DataRows(0)("邮件帐号") m.Password = dt.DataRows(0)("邮件密码") m.From = dt.DataRows(0)("Email") End If m.To = Tables("邮件系统").Current("收件人") MessageBox.Show(1) m.Title = Tables("邮件系统").Current("主题") m.Content = Tables("邮件系统").Current("内容") MessageBox.Show(2) m.SendAsync() MessageBox.Show("邮件发送成功")
红色部分都通过了,但是出现了错误提示:
此主题相关图片如下:tm截图未命名.jpg
|
-- 作者:狐狸爸爸
-- 发布时间:2012/4/28 18:08:00
--
2楼问题,看看你的邮箱是否允许发送附件,如果允许的话,你的附件是不是太大,发送的附件超过了邮箱的限制,还有你用的是异步发送,虽然似乎马上发送完毕,但是实际上还在发送,并没有发送结束,特别是有附件的时候,所以并不能及时收到。
此外看看你的指定的附件是不是说真的存在,附件一定要包括完整的路径,还有是不是虽然收到了,但是被自动放在垃圾邮件箱了。
至于三楼,你没有指定收件人,当然报错的。
|
-- 作者:布莱克朱
-- 发布时间:2012/4/28 20:56:00
--
我再研究一下.
|
-- 作者:布莱克朱
-- 发布时间:2012/4/28 22:38:00
--
DataTables("邮件系统").Save Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT * From {部门人员} Where [人员名称] = \'" & _UserName & "\'" dt = cmd.ExecuteReader If dt.DataRows.Count > 0 Then Dim m As New MailSender m.Host = dt.DataRows(0)("SMTP设置_服务器") m.Account = dt.DataRows(0)("邮件帐号") m.Password = dt.DataRows(0)("邮件密码") m.From = dt.DataRows(0)("Email") Dim r As Row = Tables("邮件系统").Current m.Title =r("主题") m.Content = r("内容") Dim Values() As String Values = r("收件人").split(",") For Index As Integer = 0 To Values.Length - 1 MessageBox.Show(Values(Index)) m.AddReceiver(Values(Index)) Next m.SendAsync() End If MessageBox.Show("邮件发送成功")
这段代码怎么看都没有问题,但是
Dim Values() As String Values = r("收件人").split(",") For Index As Integer = 0 To Values.Length - 1 MessageBox.Show(Values(Index)) m.AddReceiver(Values(Index)) Next
这个不起作用,对话框没有出来.
但是我用按钮单独做了一个测试是可以对话框的.
|
-- 作者:布莱克朱
-- 发布时间:2012/4/28 23:14:00
--
我改这样也不行,问题在哪儿呢?
DataTables("邮件系统").Save Dim r As Row = Tables("邮件系统").Current Dim i As Integer If r("收件人") = "" Then MessageBox.Show("收件人信息不完整, 请重新设置! ","信息提示",MessageBoxButtons.OK) Return Else Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT * From {部门人员} Where [人员名称] = \'" & _UserName & "\'" dt = cmd.ExecuteReader If dt.DataRows.Count > 0 Then Dim m As New MailSender m.Host = dt.DataRows(0)("SMTP设置_服务器") m.Account = dt.DataRows(0)("邮件帐号") m.Password = dt.DataRows(0)("邮件密码") m.From = dt.DataRows(0)("Email") Dim Values() As String Values = r("收件人").split(",") For Index As Integer = 0 To Values.Length - 1 If Values(Index).Length = 0 Then m.To = r("收件人") Else m.AddReceiver(Values(Index)) End If Next m.Title =r("主题") m.Content = r("内容") m.SendAsync() MessageBox.Show("邮件发送完毕! ","信息提示!",MessageBoxButtons.OK) End If End If
|
-- 作者:布莱克朱
-- 发布时间:2012/4/28 23:29:00
--
全部搞定,封帖!
|