前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不使用smtp直接发送邮件

不使用smtp直接发送邮件

作者头像
码农二狗
发布2018-06-29 10:17:51
2.7K1
发布2018-06-29 10:17:51
举报
文章被收录于专栏:码农二狗

用smtp发邮件挺蛋疼的,不是有配额限制就是有配额限制.所以我觉得应该有直接发送邮件的办法.回归到用命令行装逼的年代,我们是这样发信的:

代码语言:javascript
复制
C:\>nslookup
默认服务器:  google-public-dns-a.google.com
Address:  8.8.8.8
> set type=mx
> qq.com
服务器:  google-public-dns-a.google.com
Address:  8.8.8.8
非权威应答:
qq.com  MX preference = 10, mail exchanger = mx3.qq.com
qq.com  MX preference = 20, mail exchanger = mx2.qq.com
qq.com  MX preference = 30, mail exchanger = mx1.qq.com
C:\>telnet mx3.qq.com 25
220 newmx13.qq.com MX QQ Mail Server
HELO localhost
250 newmx13.qq.com
MAIL FROM:<eslizn@localhost>
250 Ok
RCPT TO:<10000@qq.com>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
hello!
.
550 Mail content denied. //service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726
QUIT

虽然邮件没有发送成功,但是是因为被过滤了,最好做下spf以及写全邮件头信息. 显然,我们可以利用程序模拟这个过程:

代码语言:javascript
复制
function realmail($to,$subject,$message,$from,$type="text/plain"){
    $rule="/([a-zA-Z0-9-.]+)\@([a-zA-Z0-9-.]+)/i";
    if(!pregmatch($rule,$to,$to) || !pregmatch($rule,$from,$from)){
        return false;
    }
    if (!getmxrr($to[2],$mx)){
        return false;
    }
    $message = array(
        "MIME-Version: 1.0",
        "X-Mailer: Xmailer",
        "Delivered-To: {$to[0]}",
        "From: {$from[1]} <{$from[0]}>",
        "To: {$to[1]} <{$to[0]}>",
        "Date: ".date("D, t F Y H:i:s O"),
        "Content-Type: {$type}; charset=UTF-8",
        "Content-Transfer-Encoding: base64",
        "Subject: =?UTF-8?B?".base64encode($subject)."?=",
        "",
        base64encode($message)
    );
    $cmds=array(
        "HELO {$from[2]}",
        "MAIL FROM:<{$from[0]}>",
        "RCPT TO:<{$to[0]}>",
        "DATA",
        implode("\r\n",$message)."\r\n.\r\n",
        "QUIT"
    );
    $fp=fsockopen(current($mx),25);
    foreach($cmds as $val){
        fwrite($fp,$val."\r\n");
        fgets($fp);
    }
    fclose($fp);
    return true;
}

这样就不用给smtp跪舔了,邮件想发就发

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档