我启动了一项新服务,我们需要向我们的客户发送电子邮件(新帐户确认等)。
我的服务器名为 prod01.bidrodeo.com 并解析为 97.107.134.38 。对于反向 DNS, 97.107.134.38 解析为 prod01.bidrodeo.com 。但是,我们所有的电子邮件地址都采用 user@bidrodeo.com 的形式。我应该让反向 DNS 指向 bidrodeo.com 吗?
我的电子邮件被某些系统延迟或拒绝,我不确定我的反向 DNS 设置是否正确。
我经常使用telnet或netcat连接smtp服务器发送邮件作为测试。
有谁知道如何使用 telnet 或 netcat 发送电子邮件但同时附加文件?可能有更好的方法,但我仍然想知道:-)
我会很高兴使用一个小的 bash shell 来实现目标的解决方案,但不想使用任何其他工具......
我想知道让我的邮件服务器代表我客户的域发送电子邮件的最佳方法,既不会被列入灰名单,也能避免退回问题。
我一直在这里,这里和这里阅读其他一些问题,但没有一个探索所有可能的解决方案。以下是我想比较的一些可能性:
一种。
HELO mymailserver.com
MAIL FROM<do-not-reply@myapp.com> # mymailserver.com same IP as myapp.com
DATA
From: <res@client.com>
Sender: <do-not-reply@myapp.com>
Run Code Online (Sandbox Code Playgroud)
问题:这就是 gmail 的作用。是 msg 标头“From:”具有不同的域,而不是信封发件人。
emailclients 将显示"From:res@client.com via do-not-reply@myapp.com"或
"From:do-not-reply@myapp.com On Behalf Of res@client.com",这不是问题为了我。
现在,这是否会严重影响我的域的声誉,即标题“From:”具有不同域的事实?(如果不是谷歌在做这件事......)
B.
HELO mymailserver.com
MAIL FROM<do-not-reply@myapp.com>
DATA
From: <res@client.com>
# same as A, but no "Sender:"
Run Code Online (Sandbox Code Playgroud)
看起来谷歌曾经这样做并称其为错误
http://groups.google.com/group/Gmail-Help-Message-Delivery-en/browse_thread/thread/f651cb1db5d9dd23/3a8bcd0548487863?lnk=gst&q=%22on+behalf +of%22&pli=1
一个错误从他们的消息中删除了“发件人:”,而“通过”没有出现在电子邮件客户端中。(RFC 说如果它与“From:”不同,它必须存在)
C。
HELO mymailserver.com
MAIL FROM<res@client.com>
DATA
From: <res@client.com>
Run Code Online (Sandbox Code Playgroud)
就好像 client.com 正在发送消息一样(MAIL FROM 也被“欺骗”了)。但是,如果 …
拥有向用户发送通知的服务,我目前正在考虑将发件人电子邮件地址从“info@”更改为更有意义的内容。
由于回复永远没有意义,我正在考虑使用那些“无回复”电子邮件地址之一。
在通过我过去 10 年的电子邮件收件箱和一些 Google 搜索进行了一些检查后,我不确定哪个“更好”(就更有可能不被垃圾邮件检查器过滤掉)使用:
另外,我不确定差异是否重要。
所以我的问题是:
使用哪种“无回复”电子邮件地址,为什么?
我遇到了 NAGIOS 系统向流行的电子邮件到短信服务发送电子邮件的问题。电子邮件到短信服务接收带有文本的电子邮件Subject:,并将它们发送到To:字段中编码的手机号码。到现在为止还挺好。可悲的是,sendmail的(和前后缀)似乎将无偿CRLF到(不一定长)Subject:线,而这造成我的短信,以在CRLF被截断,当且仅当该Subject:行包含一个或多个冒号过去没来由CRLF。
我相信这些消息是正确创建的,但可以肯定的是,这里是我为自己创建了一个完全 noddy 测试消息,Subject:一行很长:
echo "foo" | mail -s "1234567 101234567 201234567 301234567 401234567 501234567 601234567 701234567 801234567 90123456789" reaper@teaparty.net
Run Code Online (Sandbox Code Playgroud)
注意这一Subject:行没有多余的冒号;我在这里所做的只是显示在电线上插入了一个额外的 CRLF。这是结果sudo ngrep -x port 25:
44 61 74 65 3a 20 46 72 69 2c 20 33 31 20 4d 61 Date: Fri, 31 Ma
79 20 32 30 31 33 20 31 30 3a 34 33 3a 35 …
我了解到,FROM 地址和 TO 地址都在称为“信封”的隐藏元素中重复,然后在“正文”中再次重复。
题
我们在各个站点都有 Exchange 服务器,但也在船上。船舶在海上时通过卫星链路连接到我们的网络,但在港口时切换到 WiFi 网桥。
由于高延迟(500+ 毫秒)和不常见的丢失(例如,当船舶转弯时),尝试在海上发送任何超过几兆字节的电子邮件很可能会失败并重试直到限制已经达到。结果:电子邮件无法送达,每次尝试都会消耗卫星链接上的宝贵带宽。
一种“解决方案”是将最大电子邮件大小限制为 5 MB,但这对用户来说几乎不友好,而且在端口中是不必要的限制。
我宁愿做的是将所有大于设定限制的电子邮件排队,以便在海上时稍后发送,同时立即发送所有小电子邮件。当时我想我会定期 ping 我们数据中心中的集线器传输服务器,当延迟下降到大约 400 毫秒以下时,我会开始处理大型电子邮件队列。当延迟超过 400 毫秒时,我会堵住漏洞并让电子邮件再次排队。
现在,我从 2003 版开始就没有真正接触过 Exchange。那时,您可以安排大型电子邮件以供以后发送,所以我的想法是在 Exchange 2010 中做一些类似的事情,然后编写一种方法来切换发送在“总是”和“从不”之间安排大型电子邮件。
创建这样的脚本应该不会太复杂,但后来我读到我依赖的功能在 Exchange 2007 中被删除了:
这是 Exchange 2003 中存在的一项功能,但已在 Exchange 2007 中删除。它是在 SMTP 连接器上设置的,具有“对超大邮件使用不同的传递时间”。
TechCenter:是否可以根据 Exchange 中的大小安排电子邮件发送?
这是真的吗?- 此功能是否不再存在于 Exchange 2010 中,或者它只是转换为类似的功能,我可以使用它来实现我的目标?如果是这样,是什么?
是否有另一种方法可以延迟在某些 Exchange 服务器上发送大型电子邮件?它可能基于时间表,甚至可能需要特定操作 - 我相当肯定会有某种方式通过脚本触发交付,我只需要在船上单独的队列中发送大量电子邮件。
您对此的想法将不胜感激!:-)
我偶然发现了两个 PowerShell CmdLets 我认为可以让我非常接近我的目标:
我玩了一会儿 Get-Message,看看上面的命令会处理什么样的消息。
最重要的是,这些命令接受消息大小过滤器。此命令将列出当前服务器上大于 5 MB(5,242,880 字节)的排队消息:
get-message -Filter {Size -gt 5242880}
Run Code Online (Sandbox Code Playgroud)
它似乎Get-Message只从各种远程传递队列返回消息。但是在服务器内流动的消息,无论多么短暂,是否会出现在 Get/Suspend/Resume-Message 会弄乱的队列中?
如果没有,解决方案可以像每隔几分钟的预定脚本一样简单,沿着(伪代码)行: …
我今天早上收到一封来自我们的一台服务器(CentOS,WHM 运行 LAMP)的电子邮件,内容如下:
服务器在启用 SMTP 之前具有 POP3。
出于安全原因,cPanel 强烈建议您禁用此功能。
我已经做了一些搜索,但我不明白为什么cPanel 建议禁用它。
我不愿意继续并禁用此功能。我们的客户没有被指示在 SMTP 之前通过 POP 访问 SMTP 服务器,但这并不意味着一些为我们客户工作的有进取心的 IT 人员没有配置他们的邮件帐户来这样做(它确实需要 SMTP 身份验证,所以有人可能会尝试在 SMTP 之前使用 POP 来解决这个问题)。
cPanel 警告我什么安全原因?
一个简单的现实问题,灵感来自这里的评论:
自 Windows 2000 中首次引入 Active Directory 以来,它支持使用 SMTP 而不是直接 RPC 的站点间复制。
但是真的有人用过吗?
如果是,为什么选择它?
设置和维护容易还是麻烦?
可靠吗?
我尝试使用 smtp 身份验证设置 postfix。我想使用 /etc/shadow 作为我的领域
不幸的是,当我尝试进行身份验证时出现“一般错误”
# nc localhost 25
220 mail.foo ESMTP Postfix
AUTH PLAIN _base_64_encoded_user_name_and_password_
535 5.7.8 Error: authentication failed: generic failure
Run Code Online (Sandbox Code Playgroud)
在mail.warn日志文件中,我得到以下条目
Oct 8 10:43:40 mail postfix/smtpd[1060]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Oct 8 10:43:40 mail postfix/smtpd[1060]: warning: SASL authentication failure: Password verification failed
Oct 8 10:43:40 mail postfix/smtpd[1060]: warning: _ip_: SASL PLAIN authentication failed: generic failure
Run Code Online (Sandbox Code Playgroud)
但是 sasl 设置似乎没问题
$ testsaslauthd -u _user_ -p …Run Code Online (Sandbox Code Playgroud)