Heim PHP-Framework Denken Sie an PHP Wie verwende ich ThinkPHP6 für E-Mail-Abonnements und Push?

Wie verwende ich ThinkPHP6 für E-Mail-Abonnements und Push?

Jun 12, 2023 am 08:27 AM
thinkphp 邮件订阅 推送

Mit der rasanten Entwicklung des Internets hat E-Mail als traditionellstes und stabilstes Kommunikationsmittel in verschiedenen Branchen immer mehr an Bedeutung gewonnen. Als Entwickler ist die Frage, wie wir Benutzern zuverlässige und effiziente E-Mail-Abonnement- und Push-Dienste bereitstellen können, zu einem Problem geworden, über das wir nachdenken und das wir lösen müssen. In diesem Artikel wird die Verwendung des ThinkPHP6-Frameworks für E-Mail-Abonnements und Push-Vorgänge vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

  1. Vorbereitung

Zuerst müssen wir PHP, Apache/Nginx und andere Webserver sowie MySQL und andere Datenbanken auf der lokalen Installation oder dem Remote-Server installieren. Gleichzeitig müssen wir zum Versenden von E-Mails das SMTP-Protokoll verwenden, daher benötigen wir auch ein Konto und ein Passwort für den SMTP-Server.

  1. Installieren Sie das Framework und die Erweiterungspakete

Bevor wir mit bestimmten Vorgängen fortfahren, müssen wir Composer verwenden, um das ThinkPHP6-Framework und die Erweiterungspakete zu installieren. Geben Sie zur Installation den folgenden Befehl in die Befehlszeile ein.

composer create-project topthink/think tp6 --prefer-dist
wget https://github.com/phpmailer/phpmailer/archive/master.zip
unzip master.zip
cp -r phpmailer-master/ tp6/vendor/phpmailer/phpmailer
Nach dem Login kopieren

Darunter besteht der erste Befehl darin, das ThinkPHP6-Framework zu installieren, der zweite Befehl darin, das PHPMailer-Erweiterungspaket herunterzuladen und der dritte Befehl darin, das PHPMailer-Erweiterungspaket in das Herstellerverzeichnis von ThinkPHP6 zu kopieren.

  1. E-Mail- und Abonnementinformationen konfigurieren

Bevor wir die E-Mail-Abonnementfunktion ausführen, müssen wir das SMTP-Serverkonto, das Passwort sowie den Namen und die Adresse des Absenders in der Datei .env konfigurieren, damit der Vorgang ausgeführt werden kann kann reibungslos verlaufen. Mail verschicken. Gleichzeitig müssen wir auch eine neue Abonnementinformationstabelle erstellen, um die Abonnementinformationen des Benutzers zu speichern. Im ThinkPHP6-Framework können wir den Migrationsbefehl verwenden, um eine Abonnementinformationstabelle mit dem Namen subscribe_info zu erstellen. .env文件中配置SMTP服务器的账号、密码以及发件人姓名和地址,以便程序顺利发送邮件。同时,我们还需要新建一个订阅信息表,以便存储用户的订阅信息。在ThinkPHP6框架中,我们可以使用migration命令创建一张名为subscribe_info的订阅信息表。

php think migrate:run --seed
Nach dem Login kopieren

在执行完以上命令后,我们需要在subscribe_info表中添加以下字段:

  • id:主键,自增长
  • email:用户的邮箱
  • is_subscribed:是否订阅邮件
  1. 编写订阅页面

当我们完成了配置文件和订阅信息表的创建后,我们需要开始编写订阅页面。在ThinkPHP6框架中,我们可以使用tp6/public目录下的index.phpindex.html进行页面的开发。为了展现方便,这里我们直接在index.html中添加一个简单的表单,用于输入用户的邮箱地址并提交。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>邮件订阅</title>
</head>
<body>
    <h1>邮件订阅</h1>
    <div>
        <form method="POST" action="{:url('/api/subscribe/submit')}">
            邮箱:<input name="email" type="email" required>
            <button type="submit">提交</button>
        </form>
    </div>
</body>
</html>
Nach dem Login kopieren

当用户提交表单后,我们需要将用户输入的邮箱地址保存到订阅信息表中,以便进行邮件推送。

  1. 编写订阅API

为了将用户输入的邮箱地址保存到订阅信息表中,我们需要编写一个名为Subscribe.php的API。在ThinkPHP6框架中,我们可以使用tp6/application/api目录进行API的开发。以下是一个简单的Subscribe.php文件。

<?php
namespace apppicontroller;

use appcommonmodelSubscribeInfo;
use PHPMailerPHPMailerPHPMailer;
use thinkacadeConfig;
use thinkRequest;

class Subscribe
{
    /**
     * 用户提交订阅信息
     * @param  Request $request [description]
     * @return [type]           [description]
     */
    public function submit(Request $request)
    {
        $email = $request->param('email');
        $subscribeInfo = SubscribeInfo::where('email', $email)->find();

        if (empty($subscribeInfo)) {
            $subscribeInfo = new SubscribeInfo();
            $subscribeInfo->email = $email;
            $subscribeInfo->is_subscribed = true;
            $subscribeInfo->save();
        } else {
            $subscribeInfo->is_subscribed = true;
            $subscribeInfo->save();
        }

        $mail = new PHPMailer(true);
        $mail->SMTPDebug = 1;                   
        $mail->isSMTP();                                            
        $mail->CharSet = 'utf-8';                                              
        $mail->SMTPAuth = true;                                       
        $mail->SMTPSecure = 'ssl';                           
        $mail->Host = Config::get('mail_host');               
        $mail->Port = Config::get('mail_port');                              
        $mail->Username = Config::get('mail_username');  
        $mail->Password = Config::get('mail_password');          
        $mail->setFrom(Config::get('mail_from_email'), Config::get('mail_from_name'));
        $mail->addAddress($email);    
        $mail->Subject = '欢迎订阅本站邮件';
        $mail->Body    = '你好,欢迎订阅本站邮件';
        $mail->send();

        return ['code' => 0, 'message' => '订阅成功'];
    }
}
Nach dem Login kopieren

在以上代码中,我们先从请求中获取到用户输入的邮箱地址,并查找订阅信息表中是否已经有该用户的记录。若没有,则新建一条记录;若已有,则将该记录的is_subscribed字段设置为true。

接下来,我们可以使用PHPMailer扩展包来发送邮件。我们先在config目录下的mail.php文件中添加以下配置信息。

# mail.php
<?php
return [
    'mail_host'       => 'smtp.exmail.qq.com',
    'mail_port'       => '465',
    'mail_username'   => 'xxx@xxx.com',
    'mail_password'   => 'xxxx',
    'mail_from_email' => 'xxx@xxx.com',
    'mail_from_name'  => 'xxx',
];
Nach dem Login kopieren

在以上配置信息中,我们填写了SMTP服务器的地址、端口、账号、密码等信息。在Subscribe.php文件中,我们可以将这些信息读取出来,并使用PHPMailer扩展包发送邮件。成功发送邮件后,我们返回给用户一个订阅成功的消息。

  1. 编写邮件推送脚本

当用户成功订阅邮件后,我们需要编写一个邮件推送脚本,以便能够定时将最新的文章内容推送给订阅用户。在ThinkPHP6框架中,我们可以使用tp6/application/command目录进行命令脚本的开发。以下是一个简单的MailPush.php脚本。

# MailPush.php

namespace appcommand;

use appcommonmodelSubscribeInfo;
use PHPMailerPHPMailerPHPMailer;
use thinkconsoleCommand;
use thinkconsoleInput;
use thinkconsoleOutput;
use thinkacadeConfig;

class MailPush extends Command
{
    /**
     * The configuration.
     *
     * @var array
     */
    private $config;

    /**
     * @inheritdoc
     */
    protected function configure()
    {
        $this->setName('mail')
             ->setDescription('Push article to subscribers');
    }

    /**
     * Execute the console command.
     *
     * @param  Input   $input
     * @param  Output  $output
     * @return void
     */
    public function execute(Input $input, Output $output)
    {
        $subscribeInfos = SubscribeInfo::where('is_subscribed', true)->select();

        if ($subscribeInfos) {
            $mail = new PHPMailer(true);
            $mail->SMTPDebug = 1;                   
            $mail->isSMTP();                                            
            $mail->CharSet = 'utf-8';                                              
            $mail->SMTPAuth = true;                                       
            $mail->SMTPSecure = 'ssl';                           
            $mail->Host = Config::get('mail_host');               
            $mail->Port = Config::get('mail_port');                              
            $mail->Username = Config::get('mail_username');  
            $mail->Password = Config::get('mail_password');          
            $mail->setFrom(Config::get('mail_from_email'), Config::get('mail_from_name'));
            $mail->isHTML(true);                                  
            $mail->Subject = '本站新文章通知';
            $mail->Body    = '亲爱的订阅者,我们有新的文章发布了,快来看看吧!';

            foreach ($subscribeInfos as $subscribeInfo) {
                $mail->addAddress($subscribeInfo->email);    
            }

            $mail->send();
        }
    }
}
Nach dem Login kopieren

在以上代码中,我们先从订阅信息表中获取到已经订阅的用户信息,然后通过PHPMailer扩展包发送邮件。我们还需要在config/app.php中添加命令脚本的路径。

# app.php
<?php
return [
    // ...
    'commands'       => [
        'appcommandMailPush'
    ],
    // ...
];
Nach dem Login kopieren
  1. 配置定时任务

当我们编写好邮件推送脚本后,我们需要配置定时任务,以便定时执行邮件推送脚本。在Linux系统下,我们可以使用crontab

crontab -e
Nach dem Login kopieren

Nachdem wir den obigen Befehl ausgeführt haben, müssen wir die folgenden Felder zur Tabelle subscribe_info hinzufügen:

    id: Primärschlüssel, automatische Inkrementierung

    E-Mail: E-Mail des Benutzers 🎜🎜is_subscribed : ob Abonnement-E-Mail🎜
    🎜Schreiben der Abonnementseite🎜🎜🎜Nachdem wir die Erstellung der Konfigurationsdatei und der Abonnementinformationstabelle abgeschlossen haben, müssen wir mit dem Schreiben der Abonnementseite beginnen. Im ThinkPHP6-Framework können wir index.php und index.html im Verzeichnis tp6/public verwenden, um Seiten zu entwickeln. Zur Vereinfachung der Präsentation fügen wir hier direkt ein einfaches Formular in index.html ein, um die E-Mail-Adresse des Benutzers einzugeben und zu übermitteln. 🎜
    0 18 * * * /path/to/php /path/to/tp6/think mail
    Nach dem Login kopieren
    🎜Nachdem der Benutzer das Formular abgeschickt hat, müssen wir die vom Benutzer eingegebene E-Mail-Adresse in der Abonnementinformationstabelle für den E-Mail-Push speichern. 🎜
      🎜Schreiben einer Abonnement-API🎜🎜🎜Um die vom Benutzer eingegebene E-Mail-Adresse in der Abonnement-Informationstabelle zu speichern, müssen wir eine API mit dem Namen Subscribe.phpschreiben >. Im ThinkPHP6-Framework können wir das Verzeichnis tp6/application/api für die API-Entwicklung verwenden. Unten finden Sie eine einfache Subscribe.php-Datei. 🎜rrreee🎜Im obigen Code erhalten wir zunächst die vom Benutzer eingegebene E-Mail-Adresse aus der Anfrage und prüfen, ob in der Abonnementinformationstabelle bereits ein Datensatz des Benutzers vorhanden ist. Wenn nicht, erstellen Sie einen neuen Datensatz. Wenn dieser bereits vorhanden ist, setzen Sie das Feld „is_subscribed“ des Datensatzes auf „true“. 🎜🎜Als nächstes können wir das PHPMailer-Erweiterungspaket zum Versenden von E-Mails verwenden. Wir fügen zunächst die folgenden Konfigurationsinformationen zur Datei mail.php im Verzeichnis config hinzu. 🎜rrreee🎜In den obigen Konfigurationsinformationen haben wir die Adresse, den Port, die Kontonummer, das Passwort und andere Informationen des SMTP-Servers eingegeben. In der Datei Subscribe.php können wir diese Informationen lesen und das PHPMailer-Erweiterungspaket zum Versenden von E-Mails verwenden. Nach erfolgreichem Versand der E-Mail senden wir eine erfolgreiche Abonnementnachricht an den Benutzer zurück. 🎜
        🎜Schreiben Sie ein E-Mail-Push-Skript🎜🎜🎜Nachdem der Benutzer die E-Mail erfolgreich abonniert hat, müssen wir ein E-Mail-Push-Skript schreiben, damit der neueste Artikelinhalt regelmäßig an den abonnierten Benutzer gesendet werden kann. Im ThinkPHP6-Framework können wir das Verzeichnis tp6/application/command verwenden, um Befehlsskripte zu entwickeln. Das Folgende ist ein einfaches MailPush.php-Skript. 🎜rrreee🎜Im obigen Code erhalten wir zunächst die abonnierten Benutzerinformationen aus der Abonnementinformationstabelle und senden dann die E-Mail über das PHPMailer-Erweiterungspaket. Wir müssen auch den Pfad zum Befehlsskript in config/app.php hinzufügen. 🎜rrreee
          🎜Geplante Aufgaben konfigurieren🎜🎜🎜Nachdem wir das E-Mail-Push-Skript geschrieben haben, müssen wir die geplante Aufgabe konfigurieren, damit das E-Mail-Push-Skript regelmäßig ausgeführt werden kann. Unter Linux-Systemen können wir den Befehl crontab verwenden, um geplante Aufgaben zu konfigurieren. Geben Sie den folgenden Befehl in die Befehlszeile ein, um die Konfigurationsdatei für die geplante Aufgabe zu öffnen. 🎜rrreee🎜In der Konfigurationsdatei für geplante Aufgaben fügen wir den folgenden Inhalt hinzu, was bedeutet, dass das E-Mail-Push-Skript jeden Nachmittag um 6 Uhr ausgeführt wird. 🎜rrreee🎜Nach Abschluss der obigen Konfiguration können wir das ThinkPHP6-Framework vollständig für E-Mail-Abonnements und Push nutzen. Nachdem der Benutzer seine E-Mail-Adresse eingegeben und einen Abonnementantrag eingereicht hat, sendet das E-Mail-Push-Skript zum angegebenen Zeitpunkt der geplanten Aufgabe den neuesten Artikelinhalt an den Benutzer. Ich hoffe, es hilft allen. 🎜

    Das obige ist der detaillierte Inhalt vonWie verwende ich ThinkPHP6 für E-Mail-Abonnements und Push?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So führen Sie das Thinkphp-Projekt aus So führen Sie das Thinkphp-Projekt aus Apr 09, 2024 pm 05:33 PM

Um das ThinkPHP-Projekt auszuführen, müssen Sie: Composer installieren, das Projektverzeichnis aufrufen und http://localhost:8000 aufrufen.

Es gibt mehrere Versionen von thinkphp Es gibt mehrere Versionen von thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP verfügt über mehrere Versionen, die für verschiedene PHP-Versionen entwickelt wurden. Zu den Hauptversionen gehören 3.2, 5.0, 5.1 und 6.0, während Nebenversionen dazu dienen, Fehler zu beheben und neue Funktionen bereitzustellen. Die neueste stabile Version ist ThinkPHP 6.0.16. Berücksichtigen Sie bei der Auswahl einer Version die PHP-Version, die Funktionsanforderungen und den Community-Support. Für optimale Leistung und Support wird empfohlen, die neueste stabile Version zu verwenden.

So führen Sie thinkphp aus So führen Sie thinkphp aus Apr 09, 2024 pm 05:39 PM

Schritte zum lokalen Ausführen von ThinkPHP Framework: Laden Sie ThinkPHP Framework herunter und entpacken Sie es in ein lokales Verzeichnis. Erstellen Sie einen virtuellen Host (optional), der auf das ThinkPHP-Stammverzeichnis verweist. Konfigurieren Sie Datenbankverbindungsparameter. Starten Sie den Webserver. Initialisieren Sie die ThinkPHP-Anwendung. Greifen Sie auf die URL der ThinkPHP-Anwendung zu und führen Sie sie aus.

So pushen Sie die Visitenkarten von Freunden auf WeChat So pushen Sie die Visitenkarten von Freunden auf WeChat Mar 30, 2024 pm 07:16 PM

Visitenkarten sind eine Methode, mit der Freunde in der Software WeChat gepusht werden können. Klicken Sie einfach auf die persönliche Seite des Freundes, wählen Sie „Mehr“, um ihn Freunden zu empfehlen und zu senden Diese WeChat-Push-Methode kann Ihnen den spezifischen Inhalt mitteilen. Schauen Sie sich das an. Tutorial zur WeChat-Nutzung So pushen Sie die Visitenkarte eines Freundes auf WeChat. Antwort: Klicken Sie auf die persönliche Seite des Freundes, wählen Sie „Mehr“, um ihn/sie einem Freund zu empfehlen, und senden Sie sie. Details: 1. Klicken Sie auf den Freund, dem Sie eine Visitenkarte senden möchten Zu. 2. Klicken Sie oben rechts auf die Option [Mehr]. 3. Klicken Sie dann auf [TA Freunden empfehlen]. 4. Wählen Sie den Freund aus, dem Sie eine Visitenkarte senden möchten. 5. Klicken Sie auf [Senden].

Was ist besser, Laravel oder Thinkphp? Was ist besser, Laravel oder Thinkphp? Apr 09, 2024 pm 03:18 PM

Leistungsvergleich von Laravel- und ThinkPHP-Frameworks: ThinkPHP schneidet im Allgemeinen besser ab als Laravel und konzentriert sich auf Optimierung und Caching. Laravel schneidet gut ab, aber für komplexe Anwendungen ist ThinkPHP möglicherweise besser geeignet.

So installieren Sie thinkphp So installieren Sie thinkphp Apr 09, 2024 pm 05:42 PM

ThinkPHP-Installationsschritte: Bereiten Sie PHP-, Composer- und MySQL-Umgebungen vor. Erstellen Sie Projekte mit Composer. Installieren Sie das ThinkPHP-Framework und die Abhängigkeiten. Datenbankverbindung konfigurieren. Anwendungscode generieren. Starten Sie die Anwendung und besuchen Sie http://localhost:8000.

Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben Nov 22, 2023 pm 12:01 PM

„Entwicklungsvorschläge: So verwenden Sie das ThinkPHP-Framework zur Implementierung asynchroner Aufgaben“ Mit der rasanten Entwicklung der Internettechnologie stellen Webanwendungen immer höhere Anforderungen an die Verarbeitung einer großen Anzahl gleichzeitiger Anforderungen und komplexer Geschäftslogik. Um die Systemleistung und das Benutzererlebnis zu verbessern, erwägen Entwickler häufig die Verwendung asynchroner Aufgaben, um einige zeitaufwändige Vorgänge auszuführen, z. B. das Senden von E-Mails, das Verarbeiten von Datei-Uploads, das Erstellen von Berichten usw. Im Bereich PHP bietet das ThinkPHP-Framework als beliebtes Entwicklungsframework einige praktische Möglichkeiten zur Implementierung asynchroner Aufgaben.

Wie ist die Leistung von thinkphp? Wie ist die Leistung von thinkphp? Apr 09, 2024 pm 05:24 PM

ThinkPHP ist ein leistungsstarkes PHP-Framework mit Vorteilen wie Caching-Mechanismus, Codeoptimierung, Parallelverarbeitung und Datenbankoptimierung. Offizielle Leistungstests zeigen, dass es mehr als 10.000 Anfragen pro Sekunde verarbeiten kann und in großen Websites und Unternehmenssystemen wie JD.com und Ctrip in praktischen Anwendungen weit verbreitet ist.

See all articles