all repos — blogroll2email @ af6c1197a72899a5d025e2ab54c4affe669bae95

vendor/phpmailer/phpmailer/docs/extending.html (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
<html>
<head>
<title>Examples using phpmailer</title>
</head>

<body>

<h2>Examples using PHPMailer</h2>

<h3>1. Advanced Example</h3>
<p>

This demonstrates sending multiple email messages with binary attachments
from a MySQL database using multipart/alternative messages.<p>

<pre>
require 'PHPMailerAutoload.php';

$mail = new PHPMailer();

$mail->setFrom('list@example.com', 'List manager');
$mail->Host   = 'smtp1.example.com;smtp2.example.com';
$mail->Mailer = 'smtp';

@mysqli_connect('localhost','root','password');
@mysqli_select_db("my_company");
$query = "SELECT full_name, email, photo FROM employee";
$result = @mysqli_query($query);

while ($row = mysqli_fetch_assoc($result))
{
    // HTML body
    $body  = "Hello &lt;font size=\"4\"&gt;" . $row['full_name'] . "&lt;/font&gt;, &lt;p&gt;";
    $body .= "&lt;i&gt;Your&lt;/i&gt; personal photograph to this message.&lt;p&gt;";
    $body .= "Sincerely, &lt;br&gt;";
    $body .= "phpmailer List manager";

    // Plain text body (for mail clients that cannot read HTML)
    $text_body  = 'Hello ' . $row['full_name'] . ", \n\n";
    $text_body .= "Your personal photograph to this message.\n\n";
    $text_body .= "Sincerely, \n";
    $text_body .= 'phpmailer List manager';

    $mail->Body    = $body;
    $mail->AltBody = $text_body;
    $mail->addAddress($row['email'], $row['full_name']);
    $mail->addStringAttachment($row['photo'], 'YourPhoto.jpg');

    if(!$mail->send())
        echo "There has been a mail error sending to " . $row['email'] . "&lt;br&gt;";

    // Clear all addresses and attachments for next loop
    $mail->clearAddresses();
    $mail->clearAttachments();
}
</pre>
<p>

<h3>2. Extending PHPMailer</h3>
<p>

Extending classes with inheritance is one of the most
powerful features of object-oriented programming. It allows you to make changes to the
original class for your own personal use without hacking the original
classes, and it's very easy to do:

<p>
Here's a class that extends the phpmailer class and sets the defaults
for the particular site:<br>
PHP include file: my_phpmailer.php
<p>

<pre>
require 'PHPMailerAutoload.php';

class my_phpmailer extends PHPMailer {
    // Set default variables for all new objects
    public $From     = 'from@example.com';
    public $FromName = 'Mailer';
    public $Host     = 'smtp1.example.com;smtp2.example.com';
    public $Mailer   = 'smtp';                         // Alternative to isSMTP()
    public $WordWrap = 75;

    // Replace the default debug output function
    protected function edebug($msg) {
        print('My Site Error');
        print('Description:');
        printf('%s', $msg);
        exit;
    }

    //Extend the send function
    public function send() {
        $this->Subject = '[Yay for me!] '.$this->Subject;
        return parent::send()
    }

    // Create an additional function
    public function do_something($something) {
        // Place your new code here
    }
}
</pre>
<br>
Now here's a normal PHP page in the site, which will have all the defaults set above:<br>

<pre>
require 'my_phpmailer.php';

// Instantiate your new class
$mail = new my_phpmailer;

// Now you only need to add the necessary stuff
$mail->addAddress('josh@example.com', 'Josh Adams');
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the message body';
$mail->addAttachment('c:/temp/11-10-00.zip', 'new_name.zip');  // optional name

if(!$mail->send())
{
   echo 'There was an error sending the message';
   exit;
}

echo 'Message was sent successfully';
</pre>
</body>
</html>