ホームページ > バックエンド開発 > PHPチュートリアル > ThinkPHP PHPMailer を使用して電子メールを送信する例

ThinkPHP PHPMailer を使用して電子メールを送信する例

韦小宝
リリース: 2023-03-17 16:36:01
オリジナル
2245 人が閲覧しました

thinkphpを使ったことがある学生も多いと思いますが、thinkphpフレームワーク自体にもクラスライブラリがあります。この記事では、thinkphp外部PHPMailerクラスライブラリの使い方について説明します。

方法 1:

1. PHPmailer をダウンロードし、ThinkPHP\Extend\Vendor フォルダーに解凍します

2. ThinkPHP に付属の Vendor メソッドを使用して、サードパーティのクラス ライブラリをロードします

3. 関連するパラメータを設定します

4. 任意の呼び出しを容易にするために、common.php にメールを送信するための関数を作成し、この関数を呼び出してメールを送信できます

/**
* 邮件发送
*/
function sendMail(){
// 载入邮件发送类库
Vendor('PHPMailer.PHPMailerAutoload');
$mail = new PHPMailer;
$mail->isSMTP();        //设置PHPMailer使用SMTP服务器发送Email
$mail->Host = 'smtp.163.com';   //指定SMTP服务器 可以是smtp.126.com, gmail, qq等服务器 自行查询
$mail->SMTPAuth = true;
$mail->CharSet='UTF-8';     //设置字符集 防止乱码
$mail->Username = 'username@163.com';  //发送人的邮箱账户
$mail->Password = 'xxxxxxxxxx';   //发送人的邮箱密码
$mail->Port = 25;   //SMTP服务器端口
$mail->From = 'user@admin.com';            //发件人邮箱地址
$mail->FromName = '在路上';                //发件人名称
$mail->addAddress('guest@test.com');      // 收件人邮箱地址 此处可以发送多个
$mail->WordWrap = 50;                                 // 换行字符数
$mail->isHTML(true);                                  // 设置邮件格式为HTML
$mail->Subject = '青岛XXX';       //邮件标题
$mail->Body    = &#39;尊敬的先生/女士:<br/>非常抱歉,您接受到这封邮件是因您的好友邀请您加入我们的CRM系统体验当中,请点击以下链接注册账户<a href=####>######</a><br/>如您没有相关意向,请忽略&#39;;
if(!$mail->send()) {
echo &#39;邮件发送失败.&#39;;
echo &#39;错误信息: &#39; . $mail->ErrorInfo;
} else {
echo &#39;邮件发送成功&#39;;
}
}
ログイン後にコピー
この関数では、電子メールを送信したい場合は、sendMail() を直接呼び出します。

送信内容、送信タイトル、受信者を変数として設定できます。例: sendMail($body, $title, $recipient) 受信者は次のとおりです。配列の形式で関数内でループするだけで完了です!! SMTP サーバーと送信者の一部の設定は Conf\config.php ファイルに書き込むことができ、C() メソッドを直接呼び出すだけです。

<br/>方法 2:

ステップ 1 まず、PHPMailer.class.php 圧縮パッケージをダウンロードします (この記事の上に添付ファイルのダウンロードがあります)

解凍後、次の 3 つのファイルが表示されます:

1.class.pop3.php
2.class.smtp.php
3.PHPMailer.class.php
PHPMailer.class.php这个文件就是核心的文件,把这个文件放到ThinkPHP的扩展包下路径如\下:ThinkPHP\Extend\Library
ログイン後にコピー

2 番目のステップは、ThinkPHP で新しい common.php ファイルを作成し、その共通ファイルに次のコードを書き込むことです:

<br/>
ログイン後にコピー

<br/>

3 番目のステップは、ThinkPHP で次のコードを書きます。 conf.php ファイル:

注: 以下は私自身の QQ メールボックスのテストです。具体的には、メールボックスの stmp を自分で開く必要があります。

returnarray(
//&#39;配置项&#39;=>&#39;配置值&#39;
&#39;MAIL_ADDRESS&#39;=>&#39;799783009@qq.com&#39;, // 邮箱地址
&#39;MAIL_LOGINNAME&#39;=>&#39;799783009@qq.com&#39;, // 邮箱登录帐号
&#39;MAIL_SMTP&#39;=>&#39;smtp.qq.com&#39;, // 邮箱SMTP服务器
&#39;MAIL_PASSWORD&#39;=>&#39;******&#39;, // 邮箱密码
&#39;SHOW_PAGE_TRACE&#39;=>true,
);
ログイン後にコピー

4番目のステップはそのまま使用します。 ThinkPHP で、IndexAction.class.php ファイルに次のコードを記述します。

// 本类由系统自动生成,仅供测试用途
classIndexAction extendsAction {
publicfunctionindex(){
if(!empty($_POST[&#39;title&#39;]) && !empty($_POST[&#39;content&#39;])){
if(SendMail("597417106@qq.com",$_POST[&#39;tile&#39;],$_POST[&#39;content&#39;]))
echo&#39;发送成功!&#39;;
else
echo&#39;发送失败&#39;;
}
$this->assign(&#39;title&#39;,&#39;测试标题&#39;);
$this->display();
}
}
ログイン後にコピー
OK、それは簡単です

<br/>メソッド 2 は標準メソッドとみなされ、すべてを thinkphp クラスに入れることがエディターによって推奨されます。それを使用する 2 番目のオプション。

php は smtp クラスを使用して簡単にメールを送信します

php の組み込みの mail() 関数がメールを送信できないという事実にまだ苦労している場合、この記事が役に立ちます。

phpはsmtpクラスを使用してメールを送信しますが、私はこれを何度も試してきましたが、基本的には問題はありません。このブログのバックグラウンドでは、ブロガーがメッセージに返信すると、新しい返信プロンプトを含む電子メールが自動的にネチズンに送信されます。これもこの記事の方法を使用して実装されます。

smtp クラスを使用して電子メールを送信する方法は、実際には非常にシンプルで安定しています。このクラスは、それを呼び出すだけです。いくつかの簡単な設定でメールを送信できます。ぜひ試してみてはいかがでしょうか。

以下はコア コードです:

<?php
require_once "email.class.php";
//******************** 配置信息 ********************************
$smtpserver = "smtp.126.com";//SMTP服务器
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "new2008oh@126.com";//SMTP服务器的用户邮箱
$smtpemailto = $_POST[&#39;toemail&#39;];//发送给谁
$smtpuser = "new2008oh";//SMTP服务器的用户帐号
$smtppass = "您的邮箱密码";//SMTP服务器的用户密码
$mailtitle = $_POST[&#39;title&#39;];//邮件主题
$mailcontent = "<h1>".$_POST[&#39;content&#39;]."</h1>";//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false;//是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
echo "<div style=&#39;width:300px; margin:36px auto;&#39;>";
if($state==""){
echo "对不起,邮件发送失败!请检查邮箱填写是否有误。";
echo "<a href=&#39;index.html&#39;>点此返回</a>";
exit();
}
echo "恭喜!邮件发送成功!!";
echo "<a href=&#39;index.html&#39;>点此返回</a>";
echo "</div>";
?>
ログイン後にコピー
上記は、

PHPMailer を使用して電子メールを送信する 2 つの ThinkPHP の例です

詳細については、PHP 中国語 Web サイトで検索してください~

関連する推奨事項:

thinkphp を使用して短いリンクを作成する方法をみんなに教えましょう

thinkphp を実装してネイティブ SQL ステートメントを実行する方法

thinkphp でデータベースを更新する 5 つの方法。

thinkphp で複数テーブル関連のクエリを実装するコード例

以上がThinkPHP PHPMailer を使用して電子メールを送信する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート