我試圖通過純PHP代碼發送電子郵件而無需登錄SMTP服務器後,發送郵件,代碼如下:PHP失敗recieving 354
<?php
$from = "[email protected]";
$to = '[email protected]';
$domain = substr($to, strpos($to, '@')+1);
$dns = dns_get_record($domain, DNS_MX);
$mx = $dns[0]['target'];
$message = "
HELO localhost
MAIL FROM: $from
RCPT TO: $to
DATA
Subject: =?UTF-8?B?ztK1xLXa0ru49iBNb2RQSFAgs8zQ8g==?=
From: $from
To: $to
Date: Mon, 03 Apr 2017 13:54:10 +0800
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Content-Type: text/plain
SGVsbG8sIFdvcmxkIQ==
.
";
$server = fsockopen($mx, 25, $errno, $error, 10);
if($errno){
echo $error;
}else{
fputs($server, $message);
while(!feof($server)) {
echo fgets($server);
}
fclose($server);
}
打印
220 bizmx8.qq.com MX QQ Mail Server
250 bizmx8.qq.com
250 Ok
250 Ok
354 End data with <CR><LF>.<CR><LF>
程序掛起後任何人都知道爲什麼,我怎麼能把這封電子郵件發送到給定的地址。 Plus:我非常確定我的腳本使用\ r \ n作爲行結尾。
請告訴我爲什麼你使用這種方法,爲什麼你不使用郵件或任何第三方郵件服務? –
像[swift郵件程序](http://swiftmailer.org/download) –
這樣的用戶第三方郵件程序如果您可以告訴我如何解決此問題:mail():無法連接到「本地主機」端口25的郵件服務器,在php.ini驗證你的「SMTP」和「smtp_port」設置或者使用ini_set() –