1<?php
2// Import PHPMailer classes into the global namespace
3// These must be at the top of your script, not inside a function
4use PHPMailer\PHPMailer\PHPMailer;
5use PHPMailer\PHPMailer\SMTP;
6use PHPMailer\PHPMailer\Exception;
7
8// Load Composer's autoloader
9require 'vendor/autoload.php';
10
11// Instantiation and passing `true` enables exceptions
12$mail = new PHPMailer(true);
13
14try {
15 //Server settings
16 $mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
17 $mail->isSMTP(); // Send using SMTP
18 $mail->Host = 'smtp1.example.com'; // Set the SMTP server to send through
19 $mail->SMTPAuth = true; // Enable SMTP authentication
20 $mail->Username = 'user@example.com'; // SMTP username
21 $mail->Password = 'secret'; // SMTP password
22 $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
23 $mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
24
25 //Recipients
26 $mail->setFrom('from@example.com', 'Mailer');
27 $mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
28 $mail->addAddress('ellen@example.com'); // Name is optional
29 $mail->addReplyTo('info@example.com', 'Information');
30 $mail->addCC('cc@example.com');
31 $mail->addBCC('bcc@example.com');
32
33 // Attachments
34 $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
35 $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
36
37 // Content
38 $mail->isHTML(true); // Set email format to HTML
39 $mail->Subject = 'Here is the subject';
40 $mail->Body = 'This is the HTML message body <b>in bold!</b>';
41 $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
42
43 $mail->send();
44 echo 'Message has been sent';
45} catch (Exception $e) {
46 echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
47}