Effekt
Die Funktion zum Senden von E-Mails wird durch die vorherige Konfiguration des Moduls realisiert. (Dieser Code kann die sendende E-Mail-Adresse nicht basierend auf Benutzereingabeinformationen ändern)
Voraussetzung
Leser verfügen bereits über Grundkenntnisse von CakePHP
Version
CakePHP 3.6.1
PHP 7.4.10
Vorbereitung
'EmailTransport' => [ 'default' => [ 'className' => 'Smtp', 'host' => 'smtp.gmail.com', 'port' => 587, 'timeout' => 30, 'username' => 'name@gmail.com', 'password' => '12345678', 'tls' => true, 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), ], ], 'Email' => [ 'default' => [ 'transport' => 'default', 'from' => 'name@gamail.com', //'charset' => 'utf-8', //'headerCharset' => 'utf-8', ], ],
Gehen Sie zu einer beliebigen Controller.php und schreiben Sie die Funktion zum Senden von E-Mails.
*Hier gibt es einen Verweis auf Stackoverflow
//在最上面加载模块 use Cake\Mailer\Email; //在任意class下写邮件发送的函数 public function send() { $email = new Email('default'); try { $email->setFrom(['name@gmail.com' => 'My Site']) ->setTo('接受者邮箱@126.com') ->setSubject('主题') ->send('本文'); echo "success"; } catch (\Cake\Network\Exception\SocketException $exception) { $lastResponse = $email->transport()->getLastResponse(); var_dump($lastResponse); } }
Schreiben Sie die Route in
$routes->connect('/send', ['controller' => 'ControllerName', 'action' => 'send']);
Fehlerbericht,Dies liegt daran, dass die Sicherheitsstufe von Google Mail zu hoch ist.
Melden Sie sich bei Ihrem Google Account Management Center an –>Sicherheit
Schalten Sie die Bestätigung in zwei Schritten ausZugriff aktivieren
Aktualisieren Sie dann die Seite. Sie können feststellen, dass wir erfolgreich E-Mails gesendet haben über Google Mail.Für die Kontosicherheit denken Sie daran, die Sicherheitsstufe nach erfolgreichem Test zu erhöhen.
Empfohlenes Lernen: „PHP-Video-Tutorial“