php フォームからメール

フォームからメール送信しようとしたらうまくいきません。どうやらサーバーの認証設定がネックとなっていたようです。
PHPMailerを使えば対応できるということなので、以下のサイトを参考にやってみたらうまくいきました。

PHPMailer_5.2.4.zipをダウンロード、解凍。
解凍したフォルダのなかにclass.phpmailer.php等が展開されている。
フォルダをそのままアップロードしておく。

これまでの以下の部分を書き換える。
    //エンコード処理
    mb_language(“Japanese”);
    mb_internal_encoding(“UTF-8”);

    //メール送信処理
    $mailsousin    = mb_send_mail($mail_to, $mail_subject, $mail_body, $mail_header);//送信先メールアドレス,メールの件名,メールの本文,送信元として表示されるメールアドレス
    //メール送信結果
    if($mailsousin == true) {
        echo ‘<p>お問い合わせメールを送信しました。</p>’;
    } else {
        echo ‘<p>メール送信でエラーが発生しました。</p>’;
    }

書き換え例
    //エンコード処理
    mb_language(“Japanese”);
    mb_internal_encoding(“UTF-8”);

    //class.phpmailer.phpの読み込み
    require_once(“./PHPMailer/class.phpmailer.php”);

    
    //メール送信処理
    $to = “post@yam-web.net”;      //宛先
    $subject = “フォームよりお問い合わせ”;         //件名
    $body = $honbun;      //本文
    $from = $mailaddress;      //差出人 送信元として表示されるメールアドレス
    $fromname = $namae;      //差し出し人名

    $mail = new PHPMailer();
    $mail->CharSet = “iso-2022-jp”;
    $mail->Encoding = “7bit”;

    $mail->IsSMTP();               //「SMTPサーバーを使うよ」設定
    $mail->SMTPAuth = TRUE;        //「SMTP認証を使うよ」設定
    $mail->Host = ‘***.***.***.***:25’;   // SMTPサーバーアドレス:ポート番号
    $mail->Username = ‘******’;      // SMTP認証用のユーザーID
    $mail->Password = ‘*******’;  // SMTP認証用のパスワード

    $mail->AddAddress($to);
    $mail->From = $from;
    $mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,”JIS”,”UTF-8″));
    $mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,”JIS”,”UTF-8″));
    $mail->Body = mb_convert_encoding($body,”JIS”,”UTF-8″);

    //メールを送信
    //$mail->Send();
    $mailsousin    = $mail->Send();
    
    //メール送信結果
    if($mailsousin == true) {
        echo ‘<p>お問い合わせメールを送信しました。</p>’;
        echo ‘<p><a href=”index.html”>トップページへ戻る</a>’;
    } else {
        echo ‘<p>メール送信でエラーが発生しました。</p>’;
        echo ‘<p><a href=”contact.html”>お問い合わせページへ戻る</a>’;
    }

参考 1
################# https://qiita.com/ShibuyaKosuke/items/309c0a7d969baf0ea8d1

<?php
require_once("./phpmailer/class.phpmailer.php");
mb_internal_encoding("UTF-8");
$to = "user@recieve.com";      //宛先
$subject = "メールの件名";         //件名
$body = "メールの本文です。";      //本文
$from = "user@send.com";      //差出人
$fromname = "送信者";      //差し出し人名
$mail = new PHPMailer();
$mail->CharSet = "iso-2022-jp";
$mail->Encoding = "7bit";
$mail->IsSMTP();               //「SMTPサーバーを使うよ」設定
$mail->SMTPAuth = TRUE;        //「SMTP認証を使うよ」設定
$mail->Host = 'send.com:25';   // SMTPサーバーアドレス:ポート番号
$mail->Username = 'user';      // SMTP認証用のユーザーID
$mail->Password = 'password';  // SMTP認証用のパスワード
$mail->AddAddress($to); 
$mail->From = $from;
$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,"JIS","UTF-8"));
$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,"JIS","UTF-8"));
$mail->Body = mb_convert_encoding($body,"JIS","UTF-8");
//メールを送信
$mail->Send();

参考 2
################# https://www.futaego.com/2017/phpmailer%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6smtp%E9%80%81%E4%BF%A1/

<?php
error_reporting(E_ALL & ~E_NOTICE);
ini_set(“display_errors”, “0”); //エラー表示:1 非表示:0
date_default_timezone_set(‘Asia/Tokyo’);
require_once(“./PHPMailer/PHPMailerAutoload.php”); //ライブラリー読込
mb_language(“japanese”);
mb_internal_encoding(“UTF-8”);
 
 //認証情報
$host          = smtp.example.com;
$smtp_user     = “user_name“;
$smtp_password = “password“;
$from          = “from mail address“;
$port          = 587;
$ssl_type      = “ssl“;
 
//宛先・件名・本文
//POSTやGETでメールを送信する場合
//$fromname = “送信者名だよ“;
//$to       = urldecode(htmlspecialchars($_POST[“to“],  ENT_QUOTES));
//$subject  = urldecode(htmlspecialchars($_POST[“subject“],  ENT_QUOTES));
//$body     = urldecode(htmlspecialchars($_POST[“body“],  ENT_QUOTES));
 
//固定テキストでテスト用
$fromname = “送信者名だよ“;
$to       = “info@example.com“;
$subject  = “十分に長い日本語の題名(subject)を作成しましょう、アイウエオかきくけこサシスセソ“;
$body     = “ここに本文が入りますよ!ここに本文が入りますよ!
ここに本文が入りますよ!ここに本文が入りますよ!ここに本文が入りますよ!ここに本文が入りますよ!
十分に長い日本語の題名(subject)を作成しましょう、アイウエオかきくけこサシスセソ“;
 
 //メール送信
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth    = true;
//$mail->SMTPDebug   = 2; //デバッグなどを行うときはコメントアウトを解除!
$mail->SMTPOptions = array(
‘ssl’ => array(
‘verify_peer’       => false, //SSLサーバー証明書の検証を要求するか(デフォルト:true)
‘verify_peer_name’  => false, //ピア名の検証を要求するか(デフォルト:true)
‘allow_self_signed’ => true //自己証明の証明書を許可するか(デフォルト:false、trueにする場合は「verify_peer」をfalseに)
)
);
$mail->CharSet    = “utf8“;
$mail->SMTPSecure = $ssl_type;
$mail->Host       = $host;
$mail->Port       = $port;
$mail->IsHTML(false);
$mail->Username   = $smtp_user;
$mail->Password   = $smtp_password;
$mail->SetFrom($smtp_user);
$mail->From       = $from;
$mail->FromName   = mb_encode_mimeheader($fromname, “JIS“, “UTF8“);
$mail->Subject    = mb_encode_mimeheader($subject,  “JIS“, “UTF8“);
$mail->Body       = $body;
$mail->AddAddress($to);
 
 //送信判定
if ($mail->Send()) {
echo “送信が成功したよ!“;
} else {
echo “送信が失敗したよ、、設定ミスがあるのかもね、、”;
}