質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

538閲覧

【Laravel】SMTPやポートを指定したメール送信方法を知りたい

meex

総合スコア83

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

1グッド

0クリップ

投稿2023/09/17 03:06

編集2023/09/17 03:14

実現したいこと

  • 「送信サーバ」「送信ポート」「SMTPアカウント」「SMTPパスワード」を指定してメール送信を行いたい。

前提

Laravelでメール送信時に、以下を設定した上でメール送信をおこないたいです。

  • 送信サーバ   :sub.fw.AAAAA.ne.jp
  • 送信ポート   :587 ※接続は「TLS」と設定
  • SMTPアカウント:[SMTP AUTH ID]
  • SMTPパスワード:[SMTP AUTH パスワード]

下記のようにプログラムを組みました。

該当のソースコード

PHP

1$config = array( 2 'driver' =>'smtp', 3 'host'=>'sub.fw.AAAAA.ne.jp', 4 'port'=>'587', 5 'from' =>'xxxxxxx@gmail.com', 6 'name' => 'テストアカウント', 7 'username' => 'SMTPアカウント', 8 'password' => 'SMTPパスワード' 9); 10 11#SMPT設定を置き換え※上書きではないのでこのController内だけ変化する 12\Config::set('mail',$config); 13 14$to = [[ 15 'name'=>'サンプルメール', 16 'email'=>'yyyyyyyyyy@pc.fw.AAAAA.ne.jp' //送信したい宛先のアドレス 17]]; 18 19Mail::to($to) 20 ->send(new BuyerSendSimpleMail([ 21 'subject' => $subject, 22 'body' => $body, 23 'from_email' => $from, 24 //送り主の情報 25 'mail_user_name' => ’xxxxx@gmail.com’, 26 'mail_app_pass' => 'Gmailのアプリパスワード', 27 'mail_from_name' => ’xxxxx@gmail.com’, 28 ]));

発生している問題・エラーメッセージ

【送信元Gmailに届いていた結果です】 MAILER-DAEMON <MAILER-DAEMON@fw.AAAAA.ne.jp> This is an automatically generated Delivery Status Notification. Delivery to the following recipients failed permanently: * yyyyyyyyyy@pc.fw.AAAAA.ne.jp Reason: Delivery failed

イメージ説明

試したこと

下記サイトを見てみましたが、うまく解決の糸口を見つけられませんでした。

補足情報(FW/ツールのバージョンなど)

php artisan -V

  • Laravel Framework 8.83.27

どのように設定すれば、SMTPアカウントとパスワードを指定したメール送信が、Laravelからおこなえるのでしょうか?
よろしくお願いいたします。

gandam👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下のソースで解決しました。

PHP

1public function sendAuthMail(){ 2// 文字エンコードを指定 3 mb_language('uni'); 4 mb_internal_encoding('UTF-8'); 5 6// インスタンスを生成(true指定で例外を有効化) 7 $mail = new PHPMailer(true); 8 9// 文字エンコードを指定 10 $mail->CharSet = 'utf-8'; 11 12 try { 13 // デバッグ設定 14 $mail->SMTPDebug = 2; // デバッグ出力を有効化(レベルを指定) 15 $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str<br>";}; 16 17 18 // SMTPサーバの設定 19 $mail->isSMTP(); // SMTPの使用宣言 20 $mail->Host = 'sub.fw.rakuten.ne.jp'; // SMTPサーバーを指定 21 $mail->SMTPAuth = true; // SMTP authenticationを有効化 22 $mail->Username = 'YYYYYY'; // SMTPサーバーのユーザ名 23 $mail->Password = 'PPPPPP'; // SMTPサーバーのパスワード 24 $mail->SMTPSecure = false; // 暗号化を有効(tls or ssl)無効の場合はfalse 25 $mail->Port = 587; // TCPポートを指定(tlsの場合は465や587) 26 27 // 送受信先設定(第二引数は省略可) 28 $mail->setFrom('店舗メアドに登録したメアド', '送信テスト'); // 送信者 29 $mail->addAddress('0464d0f1XXXXXXXXX[AT]pc . fw . rakuten . ne . jp', '受信者名'); // 宛先 (楽天によってマスクされた、購入者アドレス) 30 $mail->Sender = '店舗メアドに登録したメアド'; // Return-path 31 32 // 送信内容設定 33 $mail->Subject = 'メール送信テスト件名'; 34 $mail->Body = 'メール送信テスト本文'; 35 36 // 送信 37 $mail->send(); 38 39 } catch (Exception $e) { 40 // エラーの場合 41 var_dump($e->getMessage()); 42 echo "[Message could not be sent. Mailer Error] {$mail->ErrorInfo}"; 43 } 44 }

参考資料

(検索ワード「php メール smpt auth id」)

楽天あんしんメルアドサービス利用の手続きや手順について
https://tempostarsupport.savaway.co.jp/s/article/7868
楽天あんしんメルアドサービス(楽天マスクアドレス)を利用したメールアドレスに送信するにはどうすればよいですか?
https://www.y-ml.com/help/import/166-to-rakuten-mask-address.html
楽天あんしんアドレスのサーバ設定方法
https://secure.ryoshusho.com/basic_info/rms/manual.html
PHPMailerでメールをSTMP送信する
https://qiita.com/e__ri/items/857b12e73080019e00b5
PHPMailer で Data not accepted.
https://www.jaga.biz/web-dev-php/phpmailer-data-not-accepted/

投稿2023/09/23 14:39

meex

総合スコア83

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問