You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.4 KiB
PHP
95 lines
2.4 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
|
|
class Email {
|
|
|
|
private $subject = "";
|
|
private $body = "";
|
|
private $to = [];
|
|
private $fromaddress = "";
|
|
private $fromname = "";
|
|
|
|
private $smtphost = "";
|
|
private $smtpport = "";
|
|
private $smtpauth = "";
|
|
private $smtpusername = "";
|
|
private $smtppassword = "";
|
|
private $smtpsecurity = "";
|
|
|
|
public function setFrom(string $address, string $name = "") {
|
|
$this->fromaddress = $address;
|
|
if (empty($name)) {
|
|
$this->fromname = $address;
|
|
} else {
|
|
$this->fromname = $name;
|
|
}
|
|
}
|
|
|
|
public function setSubject(string $subj) {
|
|
$this->subject = $subj;
|
|
}
|
|
|
|
public function setBody(string $body) {
|
|
$this->body = $body;
|
|
}
|
|
|
|
public function addTo(string $email) {
|
|
$this->to[] = $email;
|
|
}
|
|
|
|
/**
|
|
* Set the SMTP configuration.
|
|
*
|
|
* @param string $host smtp.example.com
|
|
* @param int $port 587
|
|
* @param bool $auth true
|
|
* @param string $user
|
|
* @param string $pass
|
|
* @param string $security tls
|
|
*/
|
|
public function setSMTP(string $host = "smtp.example.com", int $port = 587, bool $auth = true, string $user = "", string $pass = "", string $security = "tls") {
|
|
$this->smtphost = $host;
|
|
$this->smtpport = $port;
|
|
$this->smtpauth = $auth;
|
|
$this->smtpusername = $user;
|
|
$this->smtppassword = $pass;
|
|
$this->smtpsecurity = $security;
|
|
}
|
|
|
|
public function send() {
|
|
$mail = new PHPMailer(true);
|
|
$mail->isSMTP();
|
|
$mail->Host = $this->smtphost;
|
|
$mail->SMTPAuth = $this->smtpauth;
|
|
if ($this->smtpauth) {
|
|
$mail->Username = $this->smtpusername;
|
|
$mail->Password = $this->smtppassword;
|
|
}
|
|
if ($this->smtpsecurity != "none") {
|
|
$mail->SMTPSecure = $this->smtpsecurity;
|
|
}
|
|
$mail->Port = $this->smtpport;
|
|
$mail->isHTML(false);
|
|
|
|
$mail->setFrom($this->fromaddress, $this->fromname);
|
|
|
|
foreach ($this->to as $to) {
|
|
$mail->addAddress($to);
|
|
}
|
|
|
|
$mail->Subject = $this->subject;
|
|
$mail->Body = $this->body;
|
|
|
|
$mail->send();
|
|
}
|
|
|
|
}
|