Sock テクノロジーを使用して、サーバーのサポートなしで電子メールを送信します。高速! !
コードをコピー コードは次のとおりです:
function send_mail($to,$subject,$body)
{
/////////////SMTP 情報、自分のものに変更できます、////////// /
$ loc_host = "Longbill"; // コンピューター名を自由に送信できます
$ smtp_acc = "Longbill.mail"; // SMTP 認証されたユーザー名、
$ smtp_pass = "longbill"; ,
$smtp_host = "smtp.163.com"; //SMTP サーバー アドレス,
$from = "longbill.mail@163.com"; //SMTP 情報に対応している必要があります。そうでない場合は失敗します
/// //// //////SMTP情報終了//////////////////////////////////
$headers = "Content-Type: text/plain; charset="gb2312"rnContent-Transfer-Encoding:base64";
$lb="rn" //改行
$hdr =explode($lb,$headers); //解析された hdr
if($body)
{
$bdy = preg_replace("/^./","..",explode($lb,$body));
}// 解析されたボディ
$smtp = array(
//1. EHLO、220 または 250 を返すと予想されます
array("EHLO ".$loc_host.$lb, "220,250", "HELO error: "),
//2. 認証ログインを送信します、220 または 250 を返すと予想されますreturn 334
array ("AUTH LOGIN".$lb,"334","AUTH error:"),
//3. 334
array(base64_encode($smtp_acc).$ を返すことを期待して、Base64 でエンコードされたユーザー名を送信します。 lb,"334 ","AUTHENTIFICATION error : "),
//4. Base64 でエンコードされたパスワードを送信し、235 を返すことを期待します
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : " ));
/ /5. メール送信元、250 を返すことを期待します
$smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROMエラー: "); 🎜 //6. Rcpt の送信先。250 を返すと予想されます
$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: "); //7 データを送信します。 , 354 を返すと予想されます
$smtp[] = array("DATA".$lb,"354","DATA error: ");
//8.0、送信元
$smtp[] = array("From: " .$ from.$lb,"","");
//8.2. 送信先
$smtp[] = array("To: ".$to.$lb,"",""); 8.1. タイトルを送信
$smtp[] = array("Subject: ".$subject.$lb,"",""); //8.3. 他のヘッダーコンテンツを送信
foreach($hdr as $h) smtp[ ] = array($h.$lb,"","");}
//8.4. ヘッダー送信を終了するために空行を送信します
$smtp[] = array($lb,"","" );
//8.5. レター本文の送信
if($bdy)
{
foreach($bdy as $b)
{
$smtp[] = array(base64_encode($b.$lb).$lb," "," ");
}
}
//9. 文字の終わりを示すために "." を送信し、250 の戻りを期待します
$smtp[] = array(".".$lb,"250 ","DATA(end)error: " ; fp = @fsockopen($smtp_host, 25);
if (!$fp) echo "エラー: ".$smtp_host. "
";
while($ result = @fgets($fp, 1024))
{
if(substr($result,3,1) == " ") { Break; }
}
$result_str ="";
// smtp 配列コマンド/データを送信
foreach($smtp as $req)
{
// 情報を送信
@fputs($fp, $req[0])
// 必要な場合サーバーから返された情報を受信し、その後
if($req [1])
{
//情報を受信
while($result = @fgets($fp, 1024))
{ if(substr($result,3, 1) == " ") { ブレーク; }
}
if (!strstr($req[1],substr($result,0,3)))
{ $result_str.=$req[2].$result ."
";
}
}
}
//接続を閉じます
@fclose($fp);
if ($result_str==""){return "送信成功しました!!";}else { $result_str;} を返します
}
上記は、slysoft virtual clonedrive php の sock テクノロジーを使用して電子メールを送信する機能を紹介しました。slysoft virtual clonedrive の内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。