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

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

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

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

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Q&A

解決済

1回答

2398閲覧

localhostからGmailにメールを送って表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

0クリップ

投稿2020/08/01 11:16

編集2020/08/21 12:26

swiftmailerを使って以下の設定で実行するとエラーが出ます。

$message
->setCharset('iso-2022-jp')
->setEncoder(Swift_Encoding::get7BitEncoding()) // 52行目、エラー

ここの行がどうしても解決できないのでヒント、助言をお願いいたします。
いろいろ使っているプラグインもあると思いますが、XAMPPを使っています。
書かなければならないファイルなどや。バージョンがあったら教えてください。
お願いいたします。

// swiftmailer5_4.php <?php // https://php-archive.net/php/swift-mailer/ 参照 // https://stackoverrun.com/ja/q/12418106   参照 require 'vendor/autoload.php'; // アカウントの設定 $config = array( 'host' => 'smtp.gmail.com', 'port' => 587, 'user' => 'sanchunaka@gmail.com', 'pass' => '6BeKxxx', 'encryption' => 'tls' ); // メールの内容 $subject = '件名です'; $body = '本文です'; $from = array('sanchunaka@gmail.com' => '送信者名'); $to = array('sanchunaka@gmail.com' => '受信者名'); // 日本語に関する初期設定 Swift::init(function () { Swift_DependencyContainer::getInstance() ->register('mime.qpheaderencoder') ->asAliasOf('mime.base64headerencoder'); Swift_Preferences::getInstance()->setCharset('iso-2022-jp'); }); // SMTP サーバーとの接続設定 /** @var \Swift_SmtpTransport $transport */ $transport = new Swift_SmtpTransport('smtp.gmail.com', 587, 'tls'); $transport->setUsername($config['user'])->setPassword($config['pass']); $mailer = new Swift_Mailer($transport); //$mailer = Swift_Mailer::newInstance($transport); $mailer->options = array ( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)); // メールの作成 $message = new Swift_Message($subject); $message ->setCharset('iso-2022-jp') ->setEncoder(Swift_Encoding::get7BitEncoding()) ->setSubject($subject) ->setFrom($from) ->setTo($to) ->setBody($body); // 送信 $result = $mailer->send($message); /* 実行結果 hiroko@HIROKO711 C:\xampp\htdocs\SwiftMailer_proj\mailer5 # php src/swiftmailer5_4.php PHP Fatal error: Uncaught Error: Class 'Swift_Encoding' not found in C:\xampp\h tdocs\SwiftMailer_proj\mailer5\src\swiftmailer5_4.php:52 Stack trace: #0 {main} thrown in C:\xampp\htdocs\SwiftMailer_proj\mailer5\src\swiftmailer5_4.php on l ine 52 Fatal error: Uncaught Error: Class 'Swift_Encoding' not found in C:\xampp\htdocs \SwiftMailer_proj\mailer5\src\swiftmailer5_4.php:52 Stack trace: #0 {main} thrown in C:\xampp\htdocs\SwiftMailer_proj\mailer5\src\swiftmailer5_4.php on l ine 52 */ ?>コード

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

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

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

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

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

guest

回答1

0

ベストアンサー

<?php // https://php-archive.net/php/swift-mailer/ // https://stackoverrun.com/ja/q/12418106 // swiftmailer5_4.php require 'vendor/autoload.php'; // アカウントの設定 $config = array( 'host' => 'smtp.gmail.com', 'port' => 587, 'user' => 'sanchunaka@gmail.com', 'pass' => '6BeK....', 'encryption' => 'tls' ); // メールの内容 $subject = '件名です'; $body = '本文です'; $from = array('sanchunaka@gmail.com' => '送信者名'); $to = array('sanchunaka@gmail.com' => '受信者名'); // 日本語に関する初期設定 Swift::init(function () { Swift_DependencyContainer::getInstance() ->register('mime.qpheaderencoder') ->asAliasOf('mime.base64headerencoder'); Swift_Preferences::getInstance()->setCharset('iso-2022-jp'); }); // SMTP サーバーとの接続設定 /** @var \Swift_SmtpTransport $transport */ $transport = new Swift_SmtpTransport('smtp.gmail.com', 587, 'tls'); $transport->setUsername($config['user'])->setPassword($config['pass']); $mailer = new Swift_Mailer($transport); //$mailer = Swift_Mailer::newInstance($transport); $mailer->options = array ( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)); // メールの作成 $message = new Swift_Message($subject); $message ->setCharset('iso-2022-jp') // ->setEncoder(Swift_Encoding::get7BitEncoding())ここをコメントアウトしました ->setSubject($subject) ->setFrom($from) ->setTo($to) ->setBody($body); // 送信 $result = $mailer->send($message); if ($mailer->send($message)) { echo "Message sent!"; } else { echo "Message could not be sent."; } /* 実行結果 正常動作 hiroko@HIROKO711 C:\xampp\htdocs\SwiftMailer_proj\mailer5 # php src/swiftmailer5_4.php Message sent! // sanchunaka@gmail.comにメ-ルが届いている 件名です 受信トレイx 送信者名<sanchunaka@gmail.com>16:51 (0 分前) To 自分 本文です ... */ // ->setEncoder(Swift_Encoding::get7BitEncoding())ここをコメントアウトして実行したらうまくいきました。

投稿2020/08/22 05:32

編集2020/08/22 05:35
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問