PHPを使用してSMTP経由でメールサーバーと通信する方法は?PHP:SMTP経由でメールサーバーと通信する方法は?
答えて
これはまさに私が探していたものです。注意: 'fwrite()'を使ってsmtpサーバに通信するときは、smtpサーバがコマンドの実行を開始するために、コマンド文字列を改行** '\ r \ n" '**文字で終了する必要があります。 – FactoryAidan
PHPMailerをご覧ください。
たぶん、あなたはこのを探しています:
これらの例は、梨メールパッケージを使用します。http://pear.php.net/package/Mail
http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm http://www.cyberciti.biz/tips/howto-php-send-email-経由-SMTP-authentication.html
が、それはメールで行うために必要なすべての機能を持っていたZend_Mail
を見てみましょう
-http://framework.zend.com
-http://framework.zend.com/manual/en/zend.mail.html
私は多分それはいくつかの助けになることができ、私の個人的なPHP framework, phunctionのEmail()
方法のために、このスニペットを書きました。私が使った正規表現は、SMTPサーバからの個々の応答を検証することができます。
if (isset($smtp) === true)
{
$result = null;
$stream = stream_socket_client($smtp);
if (is_resource($stream) === true)
{
$data = array('HELO ' . $_SERVER['HTTP_HOST']);
$result .= substr(ltrim(fread($stream, 8192)), 0, 3);
if (preg_match('~^220~', $result) > 0)
{
$auth = array_slice(func_get_args(), 8, 2);
if (count($auth) == 2)
{
$data = array_merge($data, array('AUTH LOGIN'), array_map('base64_encode', $auth));
}
$data[] = sprintf('MAIL FROM: <%s>', implode('', array_slice($from, 0, 1)));
foreach (array_merge(array_values($to), array_values($cc), array_values($bcc)) as $value)
{
$data[] = sprintf('RCPT TO: <%s>', $value);
}
$data[] = 'DATA';
$data[] = implode("\r\n", array_merge(array_diff_key($header, array('Bcc' => true)), array(''), $content, array('.')));
$data[] = 'QUIT';
while (preg_match('~^220(?>250(?>(?>334){1,2}(?>235)?)?(?>(?>250){1,}(?>354(?>250)?)?)?)?$~', $result) > 0)
{
if (fwrite($stream, array_shift($data) . "\r\n") !== false)
{
$result .= substr(ltrim(fread($stream, 8192)), 0, 3);
}
}
if (count($data) > 0)
{
if (fwrite($stream, array_pop($data) . "\r\n") !== false)
{
$result .= substr(ltrim(fread($stream, 8192)), 0, 3);
}
}
}
fclose($stream);
}
return (preg_match('~221$~', $result) > 0) ? true : false;
}
- 1. シリアル経由でNCI NFCコントローラと通信する方法は?
- 2. oudoo 9でoutlook office365経由で発信メールサーバーを設定する方法
- 3. ブラウザ経由でCatiaと通信する最も良い方法
- 4. HTTP経由でFirebase通知を送信する方法
- 5. GAE経由で通信するAndroidクライアント
- 6. Raspberry Pi:I2C経由で通信する
- 7. チャネル経由の通信
- 8. TLS 1.2経由で通信するNettyサーバを強制する方法は?
- 9. iOS-appでウェブソケット経由で実装し通信する方法は?
- 10. Angular EventEmitterとサービス経由の通信
- 11. Bluetooth経由で確実に通信する方法はありますか?
- 12. AndroidアプリはUSB経由でデスクトップアプリケーションと通信できますか?
- 13. NodeJSとTermux経由でAndroidのBluetoothデバイスと通信する
- 14. Windowsでネットワーク経由でドライバと通信する
- 15. CASはREST経由で外部ユーザーストアと通信します
- 16. USBポート経由でWindowsコンピュータと通信するiOSアプリを通信することは可能ですか?
- 17. node.js経由でアンドロイドプッシュ通知を送信
- 18. C/C++経由でのRDP通信
- 19. Androidデバイス、USBポート経由でデバイスと通信する
- 20. WiFi経由でZigBeeデバイスと通信する
- 21. USB経由でWindows PCからアンドロイドデバイスと通信する
- 22. c#経由でsocket.ioサーバーと通信する
- 23. OmniAuth認証後にPOST経由でRailsアプリケーションと通信する
- 24. ハイパーターミナル経由でJavaを使用するハードウェアとの通信
- 25. Android用の「ベスト」方法イーサネット経由のArduino通信
- 26. シリアルbtブリッジ経由でiPhoneと通信することは可能ですか?
- 27. OpenCV MatをPCからAndroid経由でSocket経由で送信する方法
- 28. DocuSign - API経由で通知を送信者に制御する方法
- 29. ブルートゥースアンドロイド経由でテキストと画像を送受信する方法
- 30. オブジェクトファイルを.slとソケット経由で送信する方法
もしあなたが人々がそれを得られないと思うなら、あなたの質問を明確にしてください... – Jakub