【问题标题】:Issue Sending Mail via SMTP问题通过 SMTP 发送邮件
【发布时间】:2023-03-19 20:35:01
【问题描述】:

我的 iOS 应用程序使用 Mailcore 访问用户的电子邮件帐户。发送和接收是通过 SMTP 和 IMAP 完成的,这两个过程都按预期工作于 Gmail 和 Outlook(两者都使用 OAuth 登录)。

我刚刚添加了雅虎(以及其他一些不使用 OAuth 的应用程序提供商),对于所有这些提供商,我在发送消息方面遇到了问题。

问题是,虽然消息确实从我的应用程序成功发送,但它们并未出现在提供者的 web 上已发送文件夹中。

例如,如果我在我的应用程序中登录我的 Yahoo 帐户,并向我的 Gmail 帐户发送一条消息,则该消息会出现在我的网络上的 Gmail 收件箱中,但不会出现在我的网络上的雅虎发件箱中。

我尝试将 Yahoo 添加到 iPhone 上的常规邮件应用程序并从该帐户发送消息 - 这很好 - 消息显示 Yahoo 在网络上的发送框。因此,我随后比较了两条消息的标题(一条从邮件应用程序发送,一条从我的应用程序发送),我看到的唯一明显区别是“X-Rocket-Received”行:

邮件应用:

X-Rocket-Received: from [11.180.250.219] (userName@71.208.72.234 with xymcookie [216.39.61.254])
    by smtp203.mail.ne1.yahoo.com with SMTP; 23 May 2014 08:19:54 -0700 PDT

我的应用:

X-Rocket-Received: from  (userName@118.41.27.139 with plain [98.138.105.21])
    by smtp214.mail.ne1.yahoo.com with SMTP; 23 May 2014 08:58:29 -0700 PDT

谁能帮我回答以下任何问题:

1) X-Rocket-Received 是什么意思?

2) “with xymcookie”与“with plain”的意义何在?

3) 我的问题可能与我没有 xymcookie 有关吗?

4) 我可以从哪里着手解决这个问题?

非常感谢。

【问题讨论】:

    标签: smtp imap email-client mailcore mailcore2


    【解决方案1】:

    附加信息:

    1. 它被一些服务器沿途放置在那里。它是一个非标准的标题。不过,它看起来类似于标准的 SMTP Received 标头。
    2. 'xymcookie' 是 Yahoo 使用的非标准身份验证方法。据我所知,它没有公开记录。
    3. 没有。
    4. 请参阅 Remy 的回答。对大多数服务器使用 IMAP Append。 Gmail 不需要它,但这是非标准的。

    【讨论】:

    • 谢谢,很有帮助。
    【解决方案2】:

    直接使用 SMTP 发送电子邮件不会将电子邮件放入提供商的已发送文件夹中。您必须使用 IMAP 登录提供商并将电子邮件的副本放入已发送文件夹作为单独的操作。更高级别的应用程序,例如 iPhone 的邮件应用程序,会在内部处理这些细节。

    【讨论】:

    • 只是添加到这个答案,APPEND 命令用于通过 IMAP 将电子邮件的副本上传到已发送文件夹。
    • 添加更多信息:有一些系统自动放入“已发送”框:gmail 就是其中之一。这是非标准行为。
    • @Max:同意。例如,GoDaddy 不会自动将 SMTP 电子邮件放入“已发送”文件夹。
    • 感谢您的澄清。
    猜你喜欢
    • 2012-12-13
    • 2014-04-25
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多