【问题标题】:vb.net Emails sent and received but no attachmentsvb.net 电子邮件发送和接收但没有附件
【发布时间】:2015-02-10 10:15:54
【问题描述】:

我有一个页面可以发送带有多个附件的电子邮件。这是我通过asp上传文件的代码:AjaxFileUpload控件名为ajaxUpload1

Protected Sub ajaxUpload1_OnUploadComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AjaxFileUploadEventArgs)

    Dim filePath As String = "~/Uploads/" & Convert.ToString(e.FileName)

    ' Save upload file to the file system
    ajaxUpload1.SaveAs(MapPath(filePath))

    e.PostedUrl = Page.ResolveUrl("~\uploads\" + e.FileName)
    Try
        emailAttachment = New System.Net.Mail.Attachment(filePath)
        attahchemnts.Add(emailAttachment)
    Catch ex As Exception
        Label2.Text = ex.ToString
    End Try


End Sub

attahchemnts 是一个包含所有上传文件名的列表。

这个位负责在按钮点击事件中设置邮件附件

Try
            If ajaxUpload1.HasAttributes Then

                For counter As Integer = 0 To attahchemnts.Count
                    mail.Attachments.Add(attahchemnts.Item(counter))

                Next

            End If
        Catch ex As Exception
            Label2.Text = ex.ToString
        End Try

问题是我能够成功发送和接收电子邮件,但我看不到电子邮件附件。有人有线索吗?谢谢

【问题讨论】:

    标签: vb.net email attachment email-attachments


    【解决方案1】:

    这是我成功的 C# 版本

     var m = new MailMessage { Subject = txtSubject.Text, IsBodyHtml = true, Body = emailOpeningLine + txtMessage.Text };
    
                try
                {
                    m.To.Add(new MailAddress(dr[0].ToString().Trim()));
                    m.From = new MailAddress(txtUserName.Text);
                    foreach (var attachment in Attactments)
                    {
                        m.Attachments.Add(new Attachment(attachment));
                    }
                    client.Send(m);
                    m.To.Clear();
                    m.Attachments.Clear();
                    Success.Add(dr[0].ToString());
                }
                catch (SmtpException esException)
                {
                    Errors.Add("Error sending to " + dr[0].ToString() + " " + esException.Message);
                }
                catch (Exception ex)
                {
                    Errors.Add("Error sending to " + dr[0].ToString() + " " + ex.Message);
    
                }
    

    在此示例中,我有一个字符串列表,其中包含循环添加到邮件消息的附件位置。

    我也有一个成功和失败列表,因此它会在失败时继续,然后我会在之后拾取任何错误。

    您应该可以使用 Telerik 代码转换器进行转换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多