LoginSignup
3
5

More than 3 years have passed since last update.

PHP For Beginnersチュートリアル その1 PHPMailerの基本的な設定について。

Last updated at Posted at 2019-07-14

この記事の目的

体系的なwebコーディングの訓練ができるようになるために、PHPの初学のきっかけかつ、PHPでログインフォームやフォームを実装することができるようになるために

PHP For Beginners

上記のチュートリアルを進めているのでその備忘録。

内容

今回のチュートリアル

PHPMailer Tutorial - Send Email Attachments

やったこと

PHPMailerの設定がなんて書いてあるか、自分で打ち込んだものに注釈をつける。
また、動画では作者が独自に改良したもので説明されているので違うところは適宜自分で調べて書いていく。

成果物

training.php
PHPMailerの基本的な設定の書き方

<?php

// use関数で必要なphpを読み込む

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

    // require関数でautoloadと外部で設定ファイルを作っているならそれを読み込む

    require 'vendor/autoload.php';
    require 'config.php';

    // インスタンスを作る

    $mail = new PHPmailer(true);

    // 作ったインスタンスに対してtry-catch構文で処理を書き込んでいく

    try{

        // SMTPサーバーの設定

        $mail->SMTPDebug =2; //本番環境では任意の数にする
        $mail->isSMTP();
        $mail->SMTPAuth = true;
        $mail->Host = MAIL_HOST; //SMTPのホストをいれる
        $mail->Username = MAIL_USERNAME; //本番環境では実際に使用するメールアドレスをいれる
        $mail->Password = MAIL_PASSWORD; //二段階認証ならアプリパスワードを生成していれる。それ以外は使用するメールアドレスのパスワード
        $mail->SMTPSecure = MAIL_ENCRPT; //SMTPのセキュリティ方式を入れる、tlsでOK
        $mail->Port = SMTP_PORT; //使用するPort番号をいれる

        // メールの送受信者を設定する

        $mail->setFrom(FROM_MAIL, FROM_MAIL); //送り主側
        $mail->addAddress(TO_MAIL, TO_MAIL); //受信側

        // メールの方式を設定する

        $mail->isHTML(false); //HTML方式のメール,trueでオンになる

        //メールの中身を決める

        $mail->Charset = "UTF-8"; //文字コードを設定
        $mail->Subject = "メールのタイトル"; //日本語の場合はmb_convert_encoding("件名です。", "UTF-8", "AUTO");と記述する
        $mail->Body = "メール本文";

        // HTML方式のメールの場合は下記と入れ替える

        // $mail->Charset = "UTF-8"; //文字コードを設定
        // $mail->Subject = mb_convert_encoding("件名です。", "UTF-8", "AUTO");
        // $mail->Body = "<html>メール本文</html>"; //HTMLマークアップ形式で書く
        // $mail->AltBody = "メール本文";

        // 送信コマンド

        $mail->send();
        echo "Message has been sent";

        //catchで以上の処理のどこかでエラーが出て、送信できなかった場合エラーメッセージを出す

     } catch(Exception $e) {
        echo "Eroor:".$mail->ErrorInfo;



}

広がった知見

PHPは書き方以外はまだ条件分岐やfor文がわかるくらいで、クラスの概念やオブジェクトなどはJavaScriptでのごく基本的な部分の理解しかない中、早くもクラスの概念が出てきたのでその重要性を知る。

try~catch構文の使い方を知る。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5