You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Visual Studio中用SMTP配置CC/BCC失败:收件人未收到邮件求助

解决SMTP抄送(CC)/密送(BCC)未收到邮件的问题

先看你贴的代码,我发现了几个直接影响邮件发送的关键点:

  • 你虽然定义了CC和Bcc这两个MailAddress对象,但完全没把它们添加到myMessage对应的CC/BCC集合里——就像你注释掉的那行myMessage.CC.Add(...),这才是让抄送生效的关键步骤,BCC也需要同样的操作。
  • 另外你把发件人设为user_email,很多SMTP服务器会严格验证发件人是否属于该服务器授权的账户,这种“借用”用户邮箱发件的操作很容易被拦截。

修正后的可运行代码示例

' 先初始化邮件对象
Dim myMessage As New MailMessage()

' 发件人建议用SMTP服务器授权的官方邮箱,比如你的平台邮箱
myMessage.From = New MailAddress("official@mypage.com")

' 添加主收件人(网站管理员)
myMessage.To.Add(New MailAddress("info@mypage.com"))

' 正式添加抄送地址
Dim ccAddr As New MailAddress("assistant@mypage.com")
myMessage.CC.Add(ccAddr)

' 正式添加密送地址
Dim bccAddr As New MailAddress(user_email)
myMessage.Bcc.Add(bccAddr)

' 配置SMTP客户端并发送(根据你的服务器信息调整)
Using smtpClient As New SmtpClient("your-smtp-server.com")
    smtpClient.Port = 587 ' 常用SSL端口,也可能是465或25,看服务器要求
    smtpClient.Credentials = New System.Net.NetworkCredential("smtp-username", "smtp-password")
    smtpClient.EnableSsl = True ' 大多数现代SMTP服务器要求SSL
    Try
        smtpClient.Send(myMessage)
    Catch ex As SmtpException
        ' 捕获错误方便调试,比如输出到日志或控制台
        Console.WriteLine($"邮件发送失败:{ex.Message}")
    End Try
End Using

额外排查方向

  • 检查垃圾邮件文件夹: 很多时候CC/BCC邮件会被收件方的邮箱系统误判为垃圾邮件,先让收件人去垃圾箱看看。
  • SMTP服务器权限: 确认你的SMTP服务器允许发送CC/BCC,并且发件人账号有足够的发送权限,不要随便用用户邮箱当发件人。
  • 调试错误信息: 一定要捕获SmtpException,里面会包含服务器返回的具体错误(比如认证失败、中继被拒绝),这比瞎试写法有用多了。

内容的提问来源于stack exchange,提问作者user2825094

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:33:28