1.認証できませんでした
まず第一に、ループを使用しない場合は、基本的にアカウントまたはパスワードが間違っていることが原因です。
ループを使用して大量のメッセージを送信する場合は、send() メソッドの完了後に必ず Smtpclose() を呼び出し、一度閉じてください。そうしないと、メールは 1 通しか送信できず、2 回目はクラッシュします。
2.Gmail
まずphpのSSL権限を有効にします
PHP で openssl を有効にする方法 ほとんどの場合、openssl を有効にするには、簡単な設定を行う必要があります。
Windows で開く方法:
1: まず、php.ini に extension=php_openssl.dll が存在するかどうかを確認し、存在する場合は、前のコメント文字「;」を削除します。この行が存在しない場合は、extension=php_openssl.dll を追加します。
2: php フォルダー内の php_openssl.dll、ssleay32.dll、libeay32.dll の 3 ファイルについて説明し、それらを WINDOWSsystem32 フォルダーにコピーします。
3: Apache または iis を再起動します
この時点で、openssl 機能が有効になります。
Linux で有効にする方法:
Jinshang Data のクラウド ホスト、PHP バージョン: 5.2.14 を使用しています
次の計画では、私のホストを例として使用して、openssl モジュールのサポートを PHP に追加する方法を説明します。
オンラインの回答の中には、PHP を再コンパイルし、configure パラメータを追加し、openssl サポートを追加するというものもあります。ここでは再コンパイルを必要としない方法を紹介します。
PHP インストール パッケージ ファイルがサーバー上に存在することが最善です。削除されている場合は、phpinfo ページに表示されているのと同じバージョンの PHP インストール ファイルをダウンロードします。これは php-5.2.14.tar.gz です。
捜狐ミラーをダウンロードすることをお勧めしますが、NetEaseミラーは見つかりませんでした。アドレスは http://mirrors.sohu.com/php/
SSH ツールを使用してホストに接続します。
# /var/www/php5 ディレクトリにダウンロードします
cd /var/www/php5
wget http://mirrors.sohu.com/php/php-5.2.14.tar.gz
#解凍
tar zxvf php-5.2.14.tar.gz
# PHP の openssl 拡張モジュール ディレクトリに移動します
cd php-5.2.14/ext/openssl/
/var/www/php5/bin/phpize # これが独自の phpize パスです。見つからない場合は、whereis phpize を使用して見つけてください。
# 実行後、エラーが見つかりました: config.m4 が見つかりません。config0.m4 は config.m4 です。名前を直接変更します
mv config0.m4 config.m4
/var/www/php5/bin/phpize
./configure --with-openssl --with-php-config=/var/www/php5/bin/php-config
作る
メイクインストール
# インストールが完了すると、.so ファイル (openssl.so) のディレクトリが返されます。このディレクトリ内の openssl.so ファイルを、php.ini で指定した extension_dir にコピーします (php.ini ファイル内の extension_dir = を見つけます)。ここでのディレクトリは var/www/php5/lib/php/extensions です。
# php.ini ファイルを編集し、ファイルの末尾に
を追加します
extension=openssl.so
# Apache を再起動してください
/usr/local/apache2/bin/apachectl 再起動
OK、openssl サポートが正常に追加されました。
しかし、Gmail の問題はそれだけではありません。Gmail の現在の SMTP と POP3 は両方とも SSL 暗号化されています
。
Step1.php opensslモジュール(拡張機能)のサポート
ステップ2. phpmailerライブラリをダウンロードします
ステップ3. コード「class.phpmailer.php」と「class.smtp.php」を変更します
1.phpmailer と smtp リガのプロパティ Is_SSL
パブリック $Is_SSL = false;
2. phpmailerのSmtpConnectメソッドでsmtpオブジェクトに渡します
$this->smtp-> Is_SSL = $this-> ;
3. fsockopen 呼び出しの前に smtp に Connect メソッドを追加します
if($this->is_ssl){ $host = 'ssl://'.$host }
;
最後のステップは、コードに含まれていない phpmailer クラスを忘れずに呼び出すことです。
コードをコピー
$mail = 新しい PHPMailer();
$mail->IsSMTP();
$mail->Host = 'smtp.gmail.com' // ビジネス郵便局のドメイン名
;
$mail->SMTPAuth = true; // SMTP 認証をオンにします
$mail->SMTPSecure = "tls";
$mail->ユーザー名 = '***@gmail.com';
$mail->パスワード = '******';
$mail->From = '***';
$mail->FromName = '***';
$mail->CharSet = 'UTF-8';
$mail->エンコーディング = "base64";
$mail->IsHTML(true) // HTML として送信
;
$mail->Subject = '***' //メールのタイトル
;
$mail->Body = '***' //メールの内容
;
$mail->AltBody = "text/html";
$mail->AddAddress('***', "");
$mail->Is_SSL = true;
$mail->ポート = 587;
if (!$mail->Send()) {
exit($mail->ErrorInfo);
}
$mail->Smtpclose();
設定解除($mail);
コードをコピー
コード部分は以上です。gmail で対応する設定を行うことを忘れないでください。
上記の3つの手順を完了すると、phpmailerを自由に使用してGmailメールを送信できるようになります。
http://www.bkjia.com/PHPjc/765063.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/765063.html技術記事 1.認証できませんでした。まず、ループを使用しない場合、その原因は基本的にアカウントまたはパスワードが間違っているためです。ループを使用して一括メッセージを送信する場合は、send() メソッドの終了後に Sm を呼び出すことを忘れないでください。 ..