技术解析

Linux 发送邮件到 qq 邮箱的问题
0
1975-02-23 17:22:59
idczone
在 wsl 下操作,敲了命令
echo "test" | mail -s "Test" [email protected]
之后无任何提示内容,当然在我的邮箱也看不见邮件,看了下 /var/log/mail.log 也是空的,有人遇到过这个问题吗?
或者有谁尝试过这样发邮件,实现方案是啥,谢谢大佬们
自建邮箱服务器?发送邮件频率如何,QQ 邮箱可能 ban ip,如果其他邮箱能收到那就可能是被 ban 了,
我用 mailu 建的邮箱,就我一个人用,偶尔发几封,一直正常,

命令行发邮件给 QQ 的动机是啥?

试试其他邮箱呗

你的 mail 命令配置了 smtp 服务器吗?如果没有的话好像是直接用 linux 本地帐户(类似于 [email&这种)发送的,那 100%被 ban,不管发到什么邮箱都一样。
另外 qq 邮箱可以去邮箱首页-自助查询-收信查询-邮件拦截中看看有没有

首先你看看你的 mail 命令是什么软件包提供的,有些系统上 mail 是假的
正常情况下是会 管道给 sendmail 命令(注意 sendmail 命令不一定是 sendmail 软件包提供的)
然后放在本地队列处理,期间会有日志
如果没有日志,可以看看 sendmail 对应软件包的后台服务是不是没运行
当然最后肯定是发不到的,但是如果正常运行,至少让你看到日志

linux 的 mail 是在早期 linux 一台大主机下,下挂的若干台终端机之间的“邮件”发送,不是互联网时代的 e-mail,我没有尝试过,但是其实应该是 2 个概念

给题主补补课。
首先,早些年代,发电子邮件,是一件非常简单的事情。比如一行命令,一条 api 调用,简单输入收件人、发件人,内容等简单参数,就能发出去。
后来,因为发邮件过于简单,一帮邪恶的程序员,编程用自动化的办法,收集邮箱地址,滥发广告消息,无论是用户,还是各大邮箱服务商,对这事都怨声载道,于是各大邮箱服务器,极大地提高了收发邮件的门槛。
现在,如果你想用自己的私人域名邮箱,向 qqmail 、163mail 等这种大厂邮件,发邮件,且需要确保稳定投递,是一件非常麻烦、需要花一定的资源的事情。
个人建议是,如果你只是偶尔要向 qq 用户发少量邮件,那么你可以阅读 qq 邮箱的说明,如何用程序去收发。但如果是企业级,需要大批量稳定收发,最好先问问 qq 邮箱的工作人员。

发送邮件你得有自己的域名,并且配置 mx 记录,spf 记录等,才不会被当作垃圾邮件拒绝。
否则没有这些防范措施,任何人岂不是可以冒充任意一个人的邮箱了。

你可以搜索一下用 mutt 在 shell 下发信,mutt 其实是配置了其他邮箱的一个小工具,以后你就可以 mutt -s 发信了。
但 mail 不成。

任何人都可以的。
有一个钓鱼邮件就是让 From = To,导致你看这封邮件就好像是从你自己的邮箱发出的(实际上仔细的 mail 头可以看到详细信息),然后声称你的整个电脑都被入侵了,还调用了你(可能根本不存在的)摄像头,拍摄了你对着 X 色网站“取悦自己”的样子,不给钱就群发你联系人。
丢人的 126 邮箱没有拦下。
( 126 邮箱拦垃圾邮件的机制挺丢人的

不如试试这个 http://sc.ftqq.com/3.version

https://developers.google.com/apps-script/reference/mail/mail-app
可以用 Google app script 给自己的 Gmail 封一个发信 API,Linux 下用 curl 调

我用 163 发没啥问题
vi /etc/mail.rc
set [email&smtp=smtp.163.com
set smtp-auth-user=邮箱用户名 smtp-auth-password=邮箱密码 smtp-auth=login

+1
补充一下。现在各个厂商之间有 IP 白名单和各种机制,白名单内发信和白名单外发信拦截的规则有非常大的不同,自建邮件服务有很大可能性会被别人当成垃圾邮件拦下来或者干脆无法到达。但是手工发信很多时候的确是满足不了需求,所以有了 sendgrid sendmail mailgun 这类服务。这些服务提供接口发信(一般是 smtp+http api ),同时也会审查你的行为,如果有不合理的发信行为可能会 ban 帐号,以此维护自己和其他服务的白名单关系、提高发信到达率。
QQ 邮箱这种给最终用户的,可以加个客户端密码**用 smtp 登录上去**,从自己的帐号给自己或者别人发,有频率和数量限制,少量的一般没有问题。如果要大量发信,建议找个这种发信服务,会好很多

perl /usr/local/bin/sendEmail --help
sendEmail-1.56 by Brandon Zehm <[email&sendEmail -f ADDRESS [options]
perl /usr/local/bin/sendEmail -f [email&-s smtp.qq.com -t [email&-u "Hello World" -xu [email&-xp mima -o message-file=/usr/local/bin/sendEmail -o tls=no
Jan 26 10:55:38 lexmac sendEmail[45192]: Email was sent successfully!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服