前回の続きです。
実行するとokという文字が表示されるところまで行きました。
ですが、メールが届きません。
エラーは何も表示されていないので、エラーは発生しいないとおもいます。
php
1<?php 2 3ini_set('display_errors', true); 4error_reporting(E_ALL); 5 6require(dirname(__FILE__)."/../vendor/autoload.php"); 7 8echo "メールを送信"; 9 10$to = '*******@yahoo.co.jp'; 11$subject = 'title'; 12$message = 'body'; 13$headers = 'From:'.'*******@gmail.com' . "\r\n"; 14 15$send_mail = mail($to, $subject, $message, $headers); 16 17if ($send_mail) { 18 echo "ok"; 19} else { 20 echo "no"; 21} 22?>
何処をどうすればよいのかが全くわかりません。
指定すべきものを指定していなかったり、するところがあれば教えて下さい。
追記
text
1var/ 2 |-www/ 3 |-html 4 | |-index.php 5 |-vendor 6 |-autoload.php 7 |-composer 8 |-phpmailer 9
上の配置で、index.phpへrequire(dirname(__FILE__)."/../vendor/autoload.php");
と記述しautoload.phpを呼び出した結果以下のエラーが発生しました。
Fatal error: Uncaught Error: Class 'PHPMailer' not found in /var/www/html/index.php:17 Stack trace: #0 {main} thrown in /var/www/html/index.php on line 17
$mail = new PHPMailer();でPHPMailerクラスが見つからないと言われています。
Kosuke_Shibuyaさんから、index.phpとvendorを同じ場所に配置しないと行けないと回答を頂いたので、配置を以下のように変更しました。
text
1var/ 2 |-www/ 3 |-html 4 |-index.php 5 |-vendor 6 |-autoload.php 7 |-composer 8 | |- ...... 9 |-phpmailer 10 |- ...... 11
index.phpでの呼び出しも変更しました。
require(dirname(FILE)."/../vendor/autoload.php");
↓
require(dirname(FILE)."/autoload.php");
ですが、エラー内容は変わらず、
Fatal error: Uncaught Error: Class 'PHPMailer' not found in /var/www/html/index.php:17 Stack trace: #0 {main} thrown in /var/www/html/index.php on line 17
と言われています。
現在のソースは以下のようになってます。
php
1<?php 2 3ini_set('display_errors', true); 4error_reporting(E_ALL); 5 6use PHPMailer\PHPMailer\PHPMailer; 7use PHPMailer\PHPMailer\Exception; 8 9//require(dirname(__FILE__)."/../vendor/autoload.php"); 10//require(dirname(__FILE__)."/vendor/autoload.php"); 11require 'vendor/autoload.php'; 12echo "メールを送信"; 13 14$to = "*******@yahoo.co.jp"; //宛先 15$subject = "メールの件名"; //件名 16$body = "メールの本文です。"; //本文 17$from = "*******@gmail.com"; //差出人 18$fromname = "送信者"; //差し出し人名 19 20$mail = new PHPMailer(); 21$mail->CharSet = "iso-2022-jp"; 22$mail->Encoding = "7bit"; 23 24$mail->IsSMTP(); //「SMTPサーバーを使うよ」設定 25$mail->SMTPAuth = TRUE; //「SMTP認証を使うよ」設定 26$mail->Host = 'send.com:25'; // SMTPサーバーアドレス:ポート番号 27$mail->Username = '*******@gmail.com'; // SMTP認証用のユーザーID 28$mail->Password = 'pass'; // SMTP認証用のパスワード 29 30$mail->AddAddress($to); 31$mail->From = $from; 32$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","UTF-8")); 33$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8")); 34$mail->Body = mb_convert_encoding($body,"JIS","UTF-8"); 35 36//メールを送信 37$mail->Send(); 38?>
回答2件
あなたの回答
tips
プレビュー