web-dev-qa-db-ja.com

コンポーザーなしでPHPMailerを使用するには?

Composerをいじるのではなく、require_once()で最新の PHPMailer ライブラリを使用したいと思います。最小限の手間でピュアなXcopyを展開したいと思います。

これが私がやろうとしていることです:

require_once("src/PHPMailer.php");
$mail = new PHPMailer;
$mail->isSMTP(); 
$mail->SMTPDebug = 2;
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = $smtpUsername;
$mail->Password = $smtpPassword;
$mail->setFrom($emailFrom, $emailFromName);
$mail->addAddress($emailTo, $emailToName);
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("test body"); 
$mail->AltBody = 'HTML messaging not supported';

if(!$mail->send()){
    echo "Mailer Error: " . $mail->ErrorInfo;
}else{
    echo "Message sent!";
}

エラーメッセージが表示されます:Fatal error: Class PHPMailer not found in [....]\EmailTester.php on line 21

行21はこれです:$mail = new PHPMailer;

この行は私の推測です:require_once("src/PHPMailer.php");-明らかにいくつかのファイルを含める必要がありますが、どのファイルなのかわかりません。

githubのgmailの例 から作業していますが、これもZipダウンロードには含まれていません。しかし、githubでナビゲートできます。そのサンプルファイルでは、次のように始まります。

use PHPMailer\PHPMailer\PHPMailer;
require '../vendor/autoload.php';
$mail = new PHPMailer;

Zipダウンロードにautoload.phpファイルが表示されず、グーグルで調べたところ、Composerを使用することを意味していることがわかりました。ただし、インクルードを実行して必要なファイルを取得する方法が必要です。

このPHPMailerライブラリと、おそらくgithubについては、いくつかの点で困惑しています。

  1. GitHubからPHP Mailerをダウンロードすると、ダウンロードされたZipファイルにリストされたファイルやフォルダーが含まれないのはなぜですか?

enter image description here

  1. Zipダウンロードに存在しないautoload.phpを参照するのはなぜですか?
  2. 明らかに私はgithubについていくつかのことを理解していませんが、ダウンロードに存在しない依存関係を参照する代わりに、動作するコードサンプルを提供して、人々にそれを他の場所で見つけさせ、戻ってきてプラグインする方法を見つけてほしいと願っていますそれは正しく?
  3. Send Emails with PHP&Gmail ]というタイトルのこのYouTubeビデオでは、彼は私がダウンロードした同じZipを同じ場所からダウンロードしていますが、ZipにはPHPMailerAutoload.phpなどの異なるファイルが含まれています。なぜ彼とはまったく異なるファイルを取得するのですか?そのビデオは2017年3月4日に公開されました。

要約すると、外部の依存関係やComposerなどのインストールなしでPHPMailerを動作させ、代わりにrequire_once()を使用して必要なものを取得するにはどうすればよいですか?

7
HerrimanCoder

完全な動作例を次に示します(ただし、定義して設定する必要のある変数がいくつかあります)。

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';

$mail = new PHPMailer;
$mail->isSMTP(); 
$mail->SMTPDebug = 2; // 0 = off (for production use) - 1 = client messages - 2 = client and server messages
$mail->Host = "smtp.gmail.com"; // use $mail->Host = gethostbyname('smtp.gmail.com'); // if your network does not support SMTP over IPv6
$mail->Port = 587; // TLS only
$mail->SMTPSecure = 'tls'; // ssl is depracated
$mail->SMTPAuth = true;
$mail->Username = $smtpUsername;
$mail->Password = $smtpPassword;
$mail->setFrom($emailFrom, $emailFromName);
$mail->addAddress($emailTo, $emailToName);
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->msgHTML("test body"); //$mail->msgHTML(file_get_contents('contents.html'), __DIR__); //Read an HTML message body from an external file, convert referenced images to embedded,
$mail->AltBody = 'HTML messaging not supported';
// $mail->addAttachment('images/phpmailer_mini.png'); //Attach an image file

if(!$mail->send()){
    echo "Mailer Error: " . $mail->ErrorInfo;
}else{
    echo "Message sent!";
}
17
HerrimanCoder

これは私のために働いた、私はこのアドレスからphpmailerもダウンロードした

https://sourceforge.net/projects/phpmailer/

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;

require '/source/PHPMailer2/src/Exception.php';
require '/source/PHPMailer2/src/PHPMailer.php';
require '/source/PHPMailer2/src/SMTP.php';
1
YakovGdl35