【问题标题】:Mandrill "reject_reason": "invalid-sender"Mandrill "reject_reason": "invalid-sender"
【发布时间】:2014-01-03 11:13:38
【问题描述】:

我正在尝试使用 mandrill 电子邮件服务发送电子邮件,但出现以下错误

    Full Response
[
    {
        "email": "someemail@somedomain.com",
        "status": "rejected",
        "_id": "b814c2974594466cba9c904c54dca6c6",
        "reject_reason": "invalid-sender"
    }
]

除了上述错误之外,没有关于它的更多详细信息。我们正在使用 .net 发送带有 Mandrill SMTP 设置的电子邮件。

【问题讨论】:

标签: email status mandrill


【解决方案1】:

查看正在发送的电话/电子邮件会很有用。该错误意味着存在无效的发件人,如拒绝原因字段中所示。这可能是因为电子邮件地址无效,名称编码无效,或者其他标头中的编码无效或损坏导致 Mandrill 无法解析“发件人”标头,但看不到您发送的实际电子邮件,很难确定到底是什么问题。

您可能想检查发件人电子邮件地址中是否有完全限定的域名,并且如果主题行已编码,则没有像换行符 (\n) 这样的字符会破坏多字节字符主题行。如果您无法确定原始 SMTP 消息中的问题,请随时 get in touch with support 寻求进一步的故障排除帮助。

【讨论】:

  • 实际答案并不能解决问题。问题是 .NET 消息编码。因此,如果 Mandrill 能指示解析错误,它实际上可以做得更好。我想知道为什么这个答案被接受了。
【解决方案2】:

我遇到了同样的问题,就我而言,我忘记填写模板默认值“From Name”和“Subject”。

【讨论】:

  • 我知道这是一个旧答案,但这正是我的问题。已设置发件人地址和发件人姓名,但忘记点击发布。
  • 几年后我遇到了同样的问题,我的主题是“-”,它被拒绝并出现无效的发件人错误。
【解决方案3】:

我遇到了同样的问题。在我的情况下,标题中的编码是问题所在。我确实将标头编码更改为 UTF-8 并且它有效。我使用的是 C# SMTP,代码如下。

message.HeadersEncoding = Encoding.UTF8;

希望它有效!

【讨论】:

  • 对我来说,添加这行代码不起作用。经过数小时的反复试验,我发现我的主题行中有一个连字符。
【解决方案4】:

对我来说,这是因为我的电子邮件来自email@example.net1 Mandrill 因为最后的 1 而拒绝了我。 e+mail@example.netemail@example.neta 均有效且将被接受。

我的其他测试只有空白的 From 标题,所以它们也被拒绝了。在我登录并检查 API 日志之前,我什至没有意识到 Mandrill 收到了这些电子邮件。

【讨论】:

    【解决方案5】:

    我最近遇到了类似的问题。这是由于我在 message.from_name 字段中使用了某些字符。在搜索文档和堆栈溢出后,我找不到禁止字符的列表,所以虽然这不一定与你的情况有关,但我想我会分享这个我编译的一些可接受字符的小列表(不是详尽无遗的)列表):

    • a-z
    • A-Z
    • 0-9
    • _、-、!、#、$、%、\、^、&、*、+、=、{、}、?、.

    在 JS 中,这是一个匹配禁止字符(或者更确切地说,任何不在上述列表中的字符)的正则表达式:

    const pattern = /[^a-zA-Z0-9_\-!#$%\^&*+={}?.]/;

    希望这对其他陷入此困境的人有所帮助。

    【讨论】:

      【解决方案6】:

      如果你使用 .NET SmtpClient,可能是因为上面的 bug:https://social.msdn.microsoft.com/Forums/vstudio/en-US/4d1c1752-70ba-420a-9510-8fb4aa6da046/subject-encoding-on-smtpclientmailmessage

      解决方法,对我们有帮助:

      使用

      message.SubjectEncoding = Encoding.Unicode;
      

      而不是

      message.SubjectEncoding = Encoding.UTF8;
      

      这在 .Net Framework 4.7.2 中仍然是实际的

      【讨论】:

        猜你喜欢
        • 2014-10-01
        • 2023-03-10
        • 2016-11-16
        • 2018-12-02
        • 2021-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-14
        相关资源
        最近更新 更多