SMTPClient 电子邮件有时会转到垃圾邮件



我很难理解为什么我使用 SMTP 从我的网站发送的电子邮件会发送到 Outlook 的垃圾邮件。 这是我的代码:

       Dim windowsLoginName As System.String = HttpContext.Current.User.Identity.Name
    Dim split As String() = Nothing
    Dim vname As String
    'Get network login name (name only)
    split = windowsLoginName.Split("".ToCharArray)
    vname = split(1)
'create the mail message
    Dim mail As New MailMessage()
    'set the addresses
    mail.From = New MailAddress(vname & "@x.com")
    mail.To.Add(txtWhoApproves.Text)
    'set the content
    Dim varstreason, vartxt, vartxt2, varbody As String
    varstreason = DropDownList1.SelectedItem.Text
    If TextBox1.Text = TextBox2.Text Then
        If CheckBox1.Checked = True Then
            varbody = TextBox3.Text & " has requested the following time off:  " & System.Environment.NewLine & varstreason & " - " & TextBox1.Text & " - All Day"
        Else
            vartxt = varstreason & " - " & TextBox1.Text
            vartxt2 = DropDownList2.SelectedValue & " to " & DropDownList3.SelectedValue
            varbody = TextBox3.Text & " has requested the following time off:  " & vartxt & " - " & vartxt2
        End If
    Else
        varbody = TextBox3.Text & " has requested the following time off:  " & varstreason & " - " & TextBox1.Text & " to " & TextBox2.Text
    End If
    mail.Subject = "Time Off Approval Requested"
    mail.Body = varbody
    'send the message
    Dim smtp As New SmtpClient("(IP Address of email server)")
    'to authenticate we set the username and password properites on the SmtpClient
    'smtp.Credentials = New NetworkCredential("username", "secret")
    smtp.Send(mail)

我收到来自登录到网络的任何人的电子邮件。 由于是多人,我评论了smtp。凭据,因为每个用户的密码都不同(并且会定期更改)。 我认为这以某种方式导致电子邮件有时会进入垃圾邮件。

还有想法? 如何防止这些电子邮件进入垃圾邮件? 我们使用的是 Exchange 2010 服务器和 Outlook 2007、2010 或 2013。 提前感谢!

可能是

您的网站在Outlook安全系统中被列为垃圾邮件,或者您的电子邮件包含一些垃圾邮件单词或链接,导致电子邮件进入垃圾邮件箱或垃圾邮件箱。

电子邮件的垃圾邮件过滤基于主题、邮件和附件的内容。 它还会根据您要从哪个主机/IP 发送的内容进行过滤。 如果您尝试使用 Gmail 等主机通过 SMTP 发送电子邮件,您可能会注意到它会进入收件箱。

根据您的评论:

  1. 电子邮件来自您网站的 SMTP 使用您的域。
  2. 您的 Exchange 服务器也使用相同的域,正在接收电子邮件。
  3. 这些电子邮件仅适用于内部受众。

从这里我会推荐 2 种不同的解决方案:

第一个解决方案:

不要使用网站的 SMTP,而是使用 Exchange 服务器发送电子邮件。这与 joe@yourcompany.com 向 bob@yourcompany.com 发送电子邮件的工作方式相同。 电子邮件永远不需要离开服务器或点击任何过滤器(除非您设置了内部过滤器),因此它不会到达垃圾邮件箱(除非最终用户专门以这种方式设置它)。查看此站点以获取有关如何完成此操作的一些帮助:https://www.emailarchitect.net/easendmail/kb/vbnet.aspx

第二种解决方案:

使用组策略将电子邮件地址添加到所有用户的安全发件人列表中。(https://social.technet.microsoft.com/Forums/office/en-US/c0714d7d-2a42-4b0f-9f1d-63234c7278a0/appending-outlook-safe-senders-list-via-gpo)这似乎是一个简单的解决方案,但问题是它仍然可能无法工作,因为您有 2 台不同的服务器使用相同的域。 因此,尽管可以添加地址,但 Outlook 可能会将其视为不同的地址,因为它不是来自 Exchange 服务器。此解决方案中的另一个选项是让每个收到您的电子邮件的人直接从他们收到的电子邮件中将其添加到安全发件人。 那会做到,但效率极低且手动。

有关电子邮件背后的流程和技术的更深入信息,我建议您查看Click-Z的"电子邮件如何工作"系列文章(第1部分-https://www.clickz.com/clickz/column/2411041/how-email-works-part-one-the-story-of-send)

最新更新