发送邮件之后显示501,没有成功,是啥原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发送邮件之后显示501,没有成功,是啥原因?相关的知识,希望对你有一定的参考价值。

这个错误的原因是 你的邮件发送地址和SMTP验证的用户名不对应

从foxmail左侧的邮箱列表中右击自己的账户

点击弹出菜单的属性 弹出邮箱帐户设置对话框
左侧列表中选择 邮件服务器
勾选右边的 SMTP服务器需要身份验证

在点击右边的设置按钮

弹出ESMTP 服务器验证对话框
选择 使用与 POP3服务器相同的信息

确定 保存设置即可

我用的是foxmail 6 beta2 看着这个版本的设置回答的你这个问题
如果你的版本不同 可能设置也略有不同
不过估计大同小异
参考技术A 501 invalid domain name。

  socket error # 10060 。

  socket error # 10061。

  是无效的域名。发件人栏需填入电子邮件地址。

电子邮件标头中的 -- 是啥?

【中文标题】电子邮件标头中的 -- 是啥?【英文标题】:What are -- in email headers?电子邮件标头中的 -- 是什么? 【发布时间】:2015-04-07 12:58:16 【问题描述】:

最近我遇到-- 作为 php 中mail() 函数的标头。我试图用谷歌搜索,但没有找到任何结果,所以我发布了这个问题。在尝试编辑我的代码时,我发现这两个 -- 之后的 id 应该是唯一的。我的 php 脚本发送带有附件的电子邮件。

<?php

$file = "http://wpbrisk.com/download/email/email/doc1.pdf"; // Specify the Url of the attachment here

$filename = "doc1.pdf"; // Specify the name of the file here

$to="hudixt@gmail.com"; // Enter the mail to which you want to sent the attachement
$your_name = "Hudixt"; // Your name
$from_mail = "info@wpbrisk.com"; // Your email

$subject = "This is a mail with attachment."; // Subject
$message = "<div id='hello'>World</div>"; // message

// Get the content of the file
    $content = file_get_contents($file);

    $content = base64_encode($content);
    $uid = md5(uniqid(time()));

    $header = "From: ".$from_name." <".$from_mail.">\r\n";

    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
    $header .= "This is a multi-part message in MIME format.\r\n";
    $header .= "--".$uid."\r\n";


    $header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $header .= $message."\r\n\r\n";
    $header .= "--".$uid."\r\n";

    $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here

    $header .= "Content-Transfer-Encoding: base64\r\n";
    $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
    $header .= $content."\r\n\r\n";
    $header .= "--".$uid."--";
    mail($mailto, $subject, "", $header);
        ?>

你能告诉我这个--在标题中的含义以及为什么它应该是唯一的。

【问题讨论】:

请发布所有相关代码和您正在谈论的上下文。我想这与 MIME 部分边界有关,对吧? 双破折号是某些格式的注释,可能就是这样 对我来说似乎有些界限 如果我必须做出有根据的猜测,我会说它们是边界。见en.wikipedia.org/wiki/MIME#Multipart_messages @MrTux 和其他人你能告诉我为什么这些边界应该是独一无二的以及它们需要什么 【参考方案1】:

这些“--ID--”行是 MIME 部分边界(请参阅https://en.wikipedia.org/wiki/MIME)。它们在https://www.rfc-editor.org/rfc/rfc2046 中进行了描述。它们用于分隔消息的不同部分。

根据 RFC#2046,只有那些必须是唯一的“足够”。如果您想将一封电子邮件封装到另一封电子邮件中,则边界不能相互推断,即它们必须是不同的。所以最好让它们“尽可能和需要”独一无二:

这意味着作曲代理能够 选择并指定一个唯一的边界参数值 不包含封闭多部分的边界参数值 作为前缀。 (https://www.rfc-editor.org/rfc/rfc2046#section-5.1)

【讨论】:

【参考方案2】:

对我来说似乎是 MIME 边界...

基本上,当您在一封电子邮件中包含多种类型的内容时,不同的部分会使用 ID 进行分隔。然后每个部分前面都有“--”,然后是边界。来自 RFC:

因此,典型的多部分 Content-Type 标头字段可能如下所示:

 Content-Type: multipart/mixed; 
      boundary=gc0p4Jq0M2Yt08jU534c0p

这表明实体由几个部分组成,每个部分本身的结构在语法上与 RFC 822 消息相同,除了标题区域可能完全为空,并且每个部分前面都有一行 --gc0p4Jq0M2Yt08jU534c0p

请参阅http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html 了解更多信息。

回答你的最后一个问题,当你有一封带有文本和附件的电子邮件时,整个邮件将有 Content-Type: multipart/mixed,文本将是 text/plain,附件(假设是一个 word 文件)将是应用程序/msword。每个新的内容类型部分将由 '--' 分隔。 $边界。选择的边界是唯一的,并且与其他消息部分不同,这样它就不会出现在它们中的任何一个中 - 当解释电子邮件内容的应用程序找到 $boundary 时,它必须可以安全地假设这是一个预期的边界而不是只是消息中的侥幸。

希望有帮助!

【讨论】:

以上是关于发送邮件之后显示501,没有成功,是啥原因?的主要内容,如果未能解决你的问题,请参考以下文章

为啥电脑已提示邮件发送成功而对方却没收到?

通过 Python Google Cloud Function 发送电子邮件的最佳方式是啥?

为啥显示“邮件发送成功”后,对方却没有收到?

邮件发送失败的原因是啥?为何总是发不出去呢?

发email会不会遇到显示“已发送”却没有发送成功的情况。而且没有“未发成功”的提示回复给你。

邮件中的cc:是啥意思?