LoginSignup
1
1

More than 1 year has passed since last update.

サクラレンタルサーバーでphpからメールを送信する

Posted at

概要

サクラレンタルサーバーで動かしてるLaravelのフレームワークからメールが送信したくなったのでその時実装したものの紹介

方法

Laravelのフレームワークでやるやり方がいくつかあったんですけど、レンタルサーバー側でcomposerのupdateができなくなってしまっていて、それに頼ることができなくなったので素のPHPの書き方をベースに書くことにした。

書き方

最終的に書いたコードがこちら

        mb_language("uni");
        mb_internal_encoding("UTF-8");
        $to = "送信したいメールアドレス"
        $subject = "件名"
        $header = "Content-Type:text/plain;charset=UTF-8\r\n";
        $header .= "From: 送信元メールアドレス\r\n";
        $param = "-f 送信元メールアドレス";
        $message = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
        $message .= "XXXX会員 仮登録完了のおしらせ\r\n";
        $message .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
        $message .= "\r\n";
        $message .= "この度は、XXXへご登録いただきまして誠にありがとうございます。\r\n";

        mb_send_mail($to, $subject, $message, $header, $param); 

詰まった部分

日本語が使えない

        $to = "送信したいメールアドレス"
        $subject = "件名"
        $header = "Content-Type:text/plain;charset=UTF-8\r\n";
        $header .= "From: 送信元メールアドレス\r\n";
        $param = "-f 送信元メールアドレス";
        $message = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
        $message .= "XXXX会員 仮登録完了のおしらせ\r\n";
        $message .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
        $message .= "\r\n";
        $message .= "この度は、XXXへご登録いただきまして誠にありがとうございます。\r\n";

        mb_send_mail($to, $subject, $message, $header, $param); 

最初上記の状態で記載していたのですが日本語全く表示されなかった。ので下記の記述を追加

        mb_language("uni");
        mb_internal_encoding("UTF-8");

        $to = "送信したいメールアドレス"
        $subject = "件名"
        $header = "Content-Type:text/plain;charset=UTF-8\r\n";
        $header .= "From: 送信元メールアドレス\r\n";
        $param = "-f 送信元メールアドレス";
        $message = "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
        $message .= "XXXX会員 仮登録完了のおしらせ\r\n";
        $message .= "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r\n";
        $message .= "\r\n";
        $message .= "この度は、XXXへご登録いただきまして誠にありがとうございます。\r\n";

        mb_send_mail($to, $subject, $message, $header, $param); 

改行されなかった

最初改行の文字列すら表示されなかったのですが原因が

        $header = "Content-Type:text/plain;charset=UTF-8\r\n";

こちらのheader部分が

        $header = "Content-Type:text/html;charset=UTF-8\r\n";

htmlを指定したせいでした

1
1
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
1
1