スポンサーリンク

さくらのレンタルサーバでPHPMailerでメールフォームを作る方法(初心者向け)

スポンサーリンク
PHP

簡単にメールフォームを実装できるのがPHPMailerです。
STMP認証もできるため、Gmailに弾かれないのも嬉しいところです。

ただ、慣れてないと意外とうまく動きません。
今回は、初心者の方向けにさくらのレンタルサーバを使って簡単なメールフォームを実装してみました。

Composerのインストール

まずはComposerをインストールします。Composerのインストール方法は他の記事に任せます。

Composerを使わない方法もありますが、めんどくさいので初心者の方は使っておいた方がいいです。

PHPMailerのインストール

ComposerでPHPMailerをインストールします。
ここでは”php_mailer“フォルダを作っていますが、自由にしていただいて大丈夫です。

$ mkdir php_mailer
$ cd php_mailer
$ composer require phpmailer/phpmailer 

さくらのレンタルサーバでメールアドレスを作成

さくらのレンタルサーバのコントロールパネルにログインし、「メールアドレス一覧」を開きます。

新規追加」からメールアドレスを作ります。その際の「ユーザ名」と「パスワード」を後で使いますので、忘れないようにしてください。

HTMLでフォームを作る

適当に作業用フォルダを作っておいて、そこでHTMLで簡単なフォームを作ります。
デザインしたい方は各々でCSSを読み込んでください。

<!DOCTYPE html>
<html>
<head>
    <title>問い合わせフォーム</title>
    <meta charset="UTF-8">
</head>
<body>
    <h2>問い合わせフォーム</h2>
    <form action="send_email.php" method="post">
        <label for="name">名前:</label><br>
        <input type="text" id="name" name="name"><br>
        
        <label for="email">メールアドレス:</label><br>
        <input type="email" id="email" name="email"><br>
        
        <label for="message">問い合わせ内容:</label><br>
        <textarea id="message" name="message" rows="4" cols="50"></textarea><br>
        
        <input type="submit" value="送信">
    </form>
</body>
</html>

このHTMLファイルは以下のように表示されます。

このダサいフォームの入力値を受け取り、メールとして送信するためのPHPファイルを作ります。

PHPファイルを作成する

同じフォルダ内に”send_email.php“というPHPファイルを作成します。
ドメインやメールアドレス、パスワードなどは適宜書き換えてください。

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require './vendor/autoload.php'; // ComposerでインストールしたPHPMailerのautoloadファイルを読み込みます

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // フォームから送信されたデータを取得
    $name = $_POST["name"];
    $email = $_POST["email"];
    $message = $_POST["message"];}

// PHPMailerのインスタンスを作成します
$mail = new PHPMailer(true);

try {
         //さくらのレンタルサーバの初期ドメイン
         $host = 'sample.sakura.ne.jp';
         
         $user = 'mailacount@sample.sakura.ne.jp';//取得したメールアドレス
         $password = 'password'; //メールアドレスを取得した時のパスワード
         //差出人
         $from = 'mailacount@sample.sakura.ne.jp'; //$userと同じ
         $from_name = '差出人の名前';
       
         $to = 'sample@gmaii.com'; //宛先のアドレス
         $to_name = 'sample@gmaii.com';//この2つは同じでOK
         //件名
         $subject = '問い合わせ!';
         //本文
         $body = "名前:{$name}"."\n"
         ."メールアドレス:{$email}"."\n"
         ."問い合わせ内容:{$message}";
         
         
         $mail->isSMTP();
         $mail->SMTPAuth = true;
         $mail->Host = $host;
         $mail->Username = $user;
         $mail->Password = $password;
         $mail->SMTPSecure = 'tls';
         $mail->Port = 587;
         $mail->CharSet = "utf-8";
         $mail->Encoding = "base64";
         $mail->setFrom($from, $from_name);
         $mail->addAddress($to, $to_name);
         $mail->Subject = $subject;
         $mail->Body = $body;
         //送信
         $mail->send();
         echo "メールの送信に成功しました";
} catch (Exception $e) {
    echo "メールの送信に失敗しました: {$mail->ErrorInfo}";
}
?>

取得したメールアドレスは、”ユーザ名@ドメイン名”です。わからない場合はさくらのレンタルサーバのコントロールパネルの「ウェブメール」から確認できます。

vendorフォルダをコピー

先ほどのHTMLフォルダと同じ階層にphp_mailerの中にあるvendorフォルダをコピーして貼り付けます。

FTPを使ってアップロード

さくらのレンタルサーバにFTPソフトを使ってフォルダごと、もしくはフォルダの中身をアップロードします。

確認

アップロードしたHTMLファイルにアクセスして、以下のように入力して送信してみます。

すると、メールがちゃんと届きました。

今回は携帯メールアドレスでやりましたが、Gmailでも届きます。(高確率で迷惑メールフォルダに入ります

まとめ

さくらのレンタルサーバPHPMailerを使ってメールフォームを簡単に実装する方法を紹介しました。PHPMailerだとSMTP認証ができ、Gmailでも一応受信できるので、とりあえずメールフォームを作りたい方には向いていると思います。

最初はちょっとだけ戸惑いますが、慣れれば簡単ですね。

タイトルとURLをコピーしました