
此主题相关图片如下:截图07.png

邮件中只有一个附件时可以正常发送,添加多个附件时出现上图错误,我是采用FileManager来添加附件的,然后发送时从“发件表”中的“附件”字段提取,代码如下,请帮忙看看错在哪里:
Dim cmd As New SQLCommand
Dim dr2 As DataRow
Dim dr3 As DataRow
Dim dt As DataTable
Dim dt1 As DataTable
Dim i As Integer
Dim ii As Integer
Dim str As String
Dim str1 As String=Tables("发件表").Current("附件")
'Dim st() As String =str1.Split("|")
Dim sjr As String = e.Form.Controls("ListBox2").combolist
cmd.C
str=e.Form.Controls("ComboBox1").value
Dim str3 As String=e.Form.Controls("ComboBox2").value
If str<>"" Then
If str3<>"" Then
dr3 = DataTables("邮箱帐户").Find("[发件地址] = '" & str & "'")
Dim sjrs() As String = sjr.Split("|")
For ii = 0 To sjrs.Length-1
Dim m As New MailSender
m.AddReceiver(sjrs(ii))
Dim str4 As String=sjrs(ii)
m.Host = dr3("主机地址")
m.Port = dr3("服务端口")
m.Account = dr3("登陆帐号")
m.Password = dr3("登陆密码")
m.From = dr3("发件地址")
m.Title = e.Form.Controls("TextBox1").Value
dr2 = DataTables("收件地址").Find("[邮箱] = '" & sjrs(ii) & "'")
'dr2 = DataTables("收件地址").Find("[邮箱] = '" & sjrs(ii) & "'")
m.Content = dr2("联系人")&"您好!"&chr(10)&e.Form.Controls("TextBox2").Value
'm.Content = sjrs(ii) &"您好!"&chr(10)&e.Form.Controls("TextBox2").Value
'添加附件
'Dim fjs() As String = e.Form.Controls("ListBox1").ComboList.Split("|")
Dim fjs() As String = str1.Split("|")
If fjs.Length > 0
For i = 0 To fjs.Length-1
If fjs(i).Length > 0
m.AddAttachments(fjs(i))
End If
Next
End If
m.SendAsync()
Tables("发件历史").AddNew()
Tables("发件历史").Current("发件箱") =m.From
Tables("发件历史").Current("收件人")=str4
Tables("发件历史").Current("主题") =m.Title
Tables("发件历史").Current("内容") =m.Content
Tables("发件历史").Current("发件日期") = Date.Today()
Tables("发件历史").Current("发件人") =UserName
Tables("发件历史").Current("企业名称") =dr2("企业名称")
Tables("发件历史").Current("客户类型") =dr2("客户类型")
Tables("发件历史").Current("客户等级")=dr2("客户等级")
Tables("发件历史").Current("客户编号")=dr2("客户编号")
Tables("发件历史").Current("邮件类型")=str3
Tables("发件历史").Current("附件")= str1
Tables("发件历史").Current.Save()
Next
MessageBox.Show("邮件发送完毕! ","信息提示",MessageBoxButtons.OK)
Else
MessageBox.Show("请选择邮件类型! ","信息提示",MessageBoxButtons.OK)
End If
Else
MessageBox.Show("请选择发件箱! ","信息提示",MessageBoxButtons.OK)
End If
Dim fjs() As String = str1.Split("|")
我在下面代码中加了messagebox.show,显示出来的窗口信息如下图所示,按理应该是一个文件名才对,显示了两个文件名,请帮忙看看需如何改:
If fjs.Length > 0
For i = 0 To fjs.Length-1
If fjs(i).Length > 0
MessageBox.Show(fjs(i), "提示", MessageBoxButtons.YesNo)
m.AddAttachments(fjs(i))
End If
Next
End If
m.SendAsync()

此主题相关图片如下:截图08.png
将你的代码排好版,再发上来吧,否则真的没办法看。
[此贴子已经被作者于2012-1-11 15:22:08编辑过]
不好意思,不知在这里如何排版,一上传就全乱了,我现将代码放在这个文本文件中,麻请帮忙看下!
[此贴子已经被作者于2012-1-11 15:27:23编辑过]
建议你粘贴到word,再从word复制粘贴到论坛看看。
不好意思,不知在这里如何排版,一上传就全乱了,我现将代码放在这个文本文件中,麻请帮忙看下!
在word中粘过来也一样的,非常不好意思,麻烦你下载上楼的附件了!
[此贴子已经被作者于2012-1-11 15:32:09编辑过]
If fjs.Length > 0
For i = 0 To fjs.Length-1
If fjs(i).Length > 0
MessageBox.Show(fjs(i), "提示", MessageBoxButtons.YesNo)
m.AddAttachments(fjs(i))
End If
Next
End If
改为:
Dim flelst As WinForm.ListBox = e.Form.Controls("ListBox1")
For Each item As String In flelst.Items
Messagebox.show(item)
m.AddAttachments(item)
Next
但我用的是FileManager控件,没有使用listbox控件,附件已存入数据表“收件表”中的”附件“字段Tables("发件表").Current("附件") ,该如何才能读得出来并添加到邮件中?