##やりたいこと
PHPMailerを使ってメールを自分宛てと他の人宛てに送信したいです。
PHPMailerのインストールにはcomposerを使いました。
##困っていること
回答してくださった方の通りにファイルの位置を変えたらautoloadの箇所はエラーを吐かなかったです。
ただ、エラー内容の文言がconfirm.phpのページで送信を押すと表示されます。
該当の行をコメント行にすると送信完了になり、送信できた判定になるのですが、メールは何も届いていません。
##PHPMailerのインストールについて
composerをインストールしたあと、コマンドプロンプトを開いて、
composerを入力してenter,そのあと composer require phpmailer/phpmailer と入力しました
##エラー内容
confirm.phpの表示画面で送信を押すと表示されました
Fatal error: Uncaught Error: Call to undefined method PHPMailer\PHPMailer\PHPMailer::addReplayTo() in C:\xampp7\htdocs\Complete.php:56 Stack trace: #0 {main} thrown in C:\xampp7\htdocs\Complete.php on line 56
##ファイルの位置
・c:\xampp7\htdocs中 ・vendorフォルダの中
→composer composerフォルダ
composer.bat phpmailerフォルダ
composer.phar autoload.php
Composer-Setup.exe
composer.json
composer.lock
Input.php
Comfirm.php
Complete.php
vendorフォルダ
commonフォルダ
style.css
##ソースコード
PHP
1complete.php 2 3<?php 4//変更箇所:3,4,6,42行目 5 use PHPMailer\PHPMailer\PHPMailer; 6 use PHPMailer\PHPMailer\Exception; 7 8 //declare(strict_types = 1); 9 session_start(); 10 11 require('vendor/autoload.php'); 12 13 include('htmlの最初の文言を読み込み'); 14 require('いろんな関数読み込み'); 15 require('common/mailvars.php'); 16 17 18 validateToken1(); 19 20 //POST形式で送られた値の確認 21 inputcheck($_POST); 22 23 //---省略(セッション変数に入っている値をそれぞれの変数に代入してる) 24 25 26 //お問い合わせ日時を日本時間に 27 date_default_timezone_set('Asia/Tokyo'); 28 29 //確認メールの内容 30 $mail_body =(上記の代入先の変数を取り入れてメールの内容を作っている(省略)) 31 32 //-------PHPMailerの設定--------------- 33 34 $MAILER = new PHPMailer(); 35//変更した箇所(8行目あたりにかくとMAIL_HOSTが未定義だとエラーになりました) 36 require('/mailset.php'); 37 38 $MAILER->isSMTP(); 39 $MAILER->SMTPAuth = true; 40 $MAILER->Host = MAIL_HOST; 41 $MAILER->Username = MAIL_USERNAME; 42 $MAILER->Password = MAIL_PASSWORD; 43 $MAILER->SMTPSecure = MAIL_ENCRPT; 44 $MAILER->Port = SMTP_PORT; 45 46 //-----------メールの設定---------- 47 $MAILER->CharSet = "UTF-8"; 48 $MAILER->Encoding = "base64"; 49 $MAILER->setFrom (mail_from,mail_from_name); 50 $MAILER->addAddress($mail); 51 //<----変更した箇所('mail_bcc','mai_bcc_name'からmail_return_path 52 $mail->addReplayTo (mail_return_path); 53 $mail->addBcc(mail_bcc); // BCCで追加 54 $mail->Subject = $subject; // メールタイトル 55 56 $mail->Body = $mail_body; // メール本文 57 58 ?> 59 60 <?php if($MAILER->send()) :?> 61 <p>失敗しました</p> 62 63 <?php else:?> 64 <h2>送信完了画面</h2> 65 <p>ありがとうございます。送信が完了しました。</p> 66 <?php endif;?> 67 68<?php 69 include('common/footer.php'); 70 71 72 if (isset($_COOKIE["PHPSESSID"])) { 73 setcookie("PHPSESSID", '', time() - 1800, '/'); 74 } 75 76 $_SESSION = array(); 77 session_destroy(); 78
php
1mailvar.php 2 3<?php 4 5//メールの宛先bcc(管理者の送信先(仮)) 6define('mail_bcc','****@yahoo.co.jp'); 7 8//bccメールの宛先の名前 9define('mail_bcc_name','管理者'); 10 11//送信元のアドレス(仮) 12define('mail_from','*****@yahoo.co.jp'); 13 14//送信元の名前 15define('mail_from_name','お問い合わせフォーム'); 16 17//自動返信先 18define('mail_return_path','*****@yahoo.co.jp'); 19
php
1mailset.php 2?php 3 4// メールホスト名 5define('MAIL_HOST','(送信元と同じ)@yahoo.co.jp'); 6 7// メールユーザー名・アカウント名 8define('MAIL_USERNAME','メールホスト名と同じ'); 9 10// メールパスワード 11define('MAIL_PASSWORD','****'); 12 13 // SMTPプロトコル(sslまたはtls) 14define('MAIL_ENCRPT','tls'); 15 16// 送信ポート(ssl:465, tls:587) 17define('SMTP_PORT', 587);
##バージョン情報など
PC:Windows10
PHP:vertion 7.2.16
composer:vertion 2.0.4 2020-10-30 22:39:11
※phpはxamppとApacheを使っています。xamppのバージョンはうまく調べられませんでした。XAMPP Control Panelはv3.2.3と表示されています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/04 03:25
2020/11/04 03:29