2012-03-07 15 views
0

私はちょうどphpスクリプトを使用してlocalhostから電子メールを送信する方法とツールの数に圧倒されています。phpのlocalhostから電子メールを送信する

あなたはちょうど私がいくつかのものをクリアするのに役立つことができますか?

これらの行動の私の種類があります:私は、php.iniでGmailのSMTPを有効にしている

  1. 、私は成功せず、命令当たりのように試験phpmailerのを、ダウンロードした465
  2. にポートを設定します。
  3. リモートサーバーのメール構成(以前は自分のサイトがホストされていた場所)があります。
  4. また、私は電子メールを送信するはずのインターネットからダウンロードしたPHPスクリプトを持っています。

phpスクリプトを使用してlocalhostから電子メールを送信するためには、正確に何が必要ですか?

+0

Gmailのあなたはphp.iniでこれを構成しているので、(あなたは、OpenSSL含まれていない限り、起こるだろうされていない)は、Windowsを想定して暗号化された接続を必要とし、 PHPをインストールしたときの拡張機能。あなたはこれをやりましたか? – DaveRandom

+0

php.iniのメールオプションは、Windowsホストの場合にのみ適用されます。 Unix/Linuxシステムには、PHPが直接使用する独自のローカルメールシステムがあります。 –

答えて

0

this oneなどのローカルSMTPサーバーが必要です。または、あなたの人生を無限に楽にするには、ローカルのPHPプロジェクトに必要なものすべてを含むWAMPをダウンロードしてください。

0

私はGmailのsmtpとして を使用していますが、次にphp mailerスクリプトを設定する必要があります。答えを編集してコードを入力するとよいでしょう。 >ドメインブーイング -

そのあとはパーミッション、ファイルのパーミッション/サーバ許可/ Gmailの許可あなたは電子メール ([email protected]を送信するドメインのDNSのMXホスト名から取得する必要がある

0

をチェックする必要があります。 XX):

function getMX($hostname = "boo.xx", $show = 0){ 
    if(dns_get_mx($hostname, $mxhosts, $weights)) { 
     $i = 0; 
     $mxList = NULL; 
     foreach($mxhosts as $key => $host) { 
      if($show == 1) echo "Hostname: $host (Weight: {$weights[$key]}) <br>"; 
      $ip = gethostbyname($host); 
      if($show == 1) echo "IP " . $ip . "\n<br>"; 
      if($show == 1) echo "IP " . gethostbyaddr($ip) . "\n<br>"; 
      $mxList[$i]['host'] = $host; 
      $mxList[$i]['ip'] = $ip; 
      $mxList[$i]['weight'] = $weights[$key]; 
      $i++; 
     } 
     return $mxList; 
    } else { 
     echo "Could not find any MX records for $hostname\n"; 
    } 
} 

今、あなたはMXホストとのリストを持って、あなたが必要とする:

はSSLで(phpmailerのか、ソケットクライアントで(常にポート25および認証なし)このホストにポート25に例メールを送信します/ tlsサポートとau thentication):

<?php 
// Send with smtp ssl 
// ini_set("SMTP","ssl://smtp.gmail.com"); 
// ini_set("smtp_port","465"); 

// Login email and password 
$login = "[email protected]"; 
$pass = "123456"; 

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'verify_peer', false); 
stream_context_set_option($ctx, 'ssl', 'verify_peer_name', false); 
try{ 
    // echo $socket = stream_socket_client('ssl://smtp.gmail.com:587', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
    echo $socket = stream_socket_client('tcp://smtp.gmail.com:587', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
    if (!$socket) { 
     print "Failed to connect $err $errstr\n"; 
     return; 
    }else{ 
     // Http 
     // fwrite($socket, "GET/HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n"); 
     // Smtp 
     echo fread($socket,8192); 
     echo fwrite($socket, "EHLO cool.xx\r\n"); 
     echo fread($socket,8192); 

     // Start tls connection 
     echo fwrite($socket, "STARTTLS\r\n"); 
     echo fread($socket,8192); 

     echo stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT); 

     // Send ehlo 
     echo fwrite($socket, "EHLO cool.xx\r\n"); 
     echo fread($socket,8192); 

     // echo fwrite($socket, "MAIL FROM: <[email protected]>\r\n"); 
     // echo fread($socket,8192); 

     echo fwrite($socket, "AUTH LOGIN\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, base64_encode($login)."\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, base64_encode($pass)."\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "rcpt to: <[email protected]>\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "DATA\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "Date: ".time()."\r\nTo: <[email protected]>\r\nFrom:<[email protected]\r\nSubject:Hello from php socket tls\r\n.\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "quit \n"); 
     echo fread($socket,8192); 

     /* Turn off encryption for the rest */ 
     // stream_socket_enable_crypto($fp, false); 

     fclose($socket); 
    } 
}catch(Exception $e){ 
    echo $e; 
} 

および認証なし

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'verify_peer', false); 
stream_context_set_option($ctx, 'ssl', 'verify_peer_name', false); 
try{ 
    // echo $socket = stream_socket_client('ssl://smtp.gmail.com:587', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
    echo $socket = stream_socket_client('tcp://mxhost.boo.xx:25', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
    if (!$socket) { 
     print "Failed to connect $err $errstr\n"; 
     return; 
    }else{ 
     // Http 
     // fwrite($socket, "GET/HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n"); 
     // Smtp 
     echo fread($socket,8192); 
     echo fwrite($socket, "EHLO cool.xx\r\n"); 
     echo fread($socket,8192); 

     // Start tls connection 
     echo fwrite($socket, "STARTTLS\r\n"); 
     echo fread($socket,8192); 

     echo stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT); 

     // Send ehlo 
     echo fwrite($socket, "EHLO cool.xx\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "MAIL FROM: <[email protected]>\r\n"); 
     echo fread($socket,8192); 

     //echo fwrite($socket, "AUTH LOGIN\r\n"); 
     //echo fread($socket,8192); 

     //echo fwrite($socket, base64_encode($login)."\r\n"); 
     //echo fread($socket,8192); 

     //echo fwrite($socket, base64_encode($pass)."\r\n"); 
     //echo fread($socket,8192); 

     echo fwrite($socket, "rcpt to: <[email protected]>\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "DATA\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "Date: ".time()."\r\nTo: <[email protected]>\r\nFrom:<[email protected]\r\nSubject:Hello from php socket tls\r\n.\r\n"); 
     echo fread($socket,8192); 

     echo fwrite($socket, "quit \n"); 
     echo fread($socket,8192); 

     /* Turn off encryption for the rest */ 
     // stream_socket_enable_crypto($fp, false); 

     fclose($socket); 
    } 
}catch(Exception $e){ 
    echo $e; 
} 
関連する問題