Plugin Directory

Changeset 1566665


Ignore:
Timestamp:
01/02/2017 08:39:00 PM (9 years ago)
Author:
clash82
Message:

Replaced SwiftMailer with built-in PHPMailer

Location:
wp-lemme-know/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • wp-lemme-know/trunk/LICENSE

    r1534536 r1566665  
    1 Copyright (C) 1999-2016 omniproject.pl Rafał Toborek. All rights reserved.
     1Copyright (C) 2016-2017 Rafał Toborek. All rights reserved.
    22This source code is provided under the following license:
    33
  • wp-lemme-know/trunk/assets/js/lemme-know.js

    r1534536 r1566665  
    66    'use strict';
    77
    8     var OmniProject = global.OmniProject = global.OmniProject || {};
     8    var clash82 = global.clash82 = global.clash82 || {};
    99
    1010    /**
     
    1414     * @param {object} config initial configuration
    1515     */
    16     OmniProject.LemmeKnow = function (config) {
     16    clash82.LemmeKnow = function (config) {
    1717        this.emailRegexPattern = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
    1818
     
    5858     * @returns {object} XMLHttpRequest
    5959     */
    60     OmniProject.LemmeKnow.prototype.getXMLHttpRequest = function () {
     60    clash82.LemmeKnow.prototype.getXMLHttpRequest = function () {
    6161        var xmlHttp;
    6262
     
    8181     * Starts subscription process.
    8282     */
    83     OmniProject.LemmeKnow.prototype.subscribe = function () {
     83    clash82.LemmeKnow.prototype.subscribe = function () {
    8484        var emailValue = this.emailElement.value,
    8585            xmlHttp = this.getXMLHttpRequest();
     
    135135     * Hides all input fields (lock user interface for background tasks).
    136136     */
    137     OmniProject.LemmeKnow.prototype.hideInputs = function () {
     137    clash82.LemmeKnow.prototype.hideInputs = function () {
    138138        this.fieldsetElement.style.display = 'none';
    139139    };
     
    142142     * Displays again all input fields.
    143143     */
    144     OmniProject.LemmeKnow.prototype.showInputs = function () {
     144    clash82.LemmeKnow.prototype.showInputs = function () {
    145145        this.fieldsetElement.style.display = 'block';
    146146    };
     
    149149     * Displays preloader bar (useful when doing some background tasks).
    150150     */
    151     OmniProject.LemmeKnow.prototype.showPreloader = function () {
     151    clash82.LemmeKnow.prototype.showPreloader = function () {
    152152        this.statusElement.innerHTML = '';
    153153        this.statusElement.style.display = 'block';
     
    158158     * Hides preloader bar.
    159159     */
    160     OmniProject.LemmeKnow.prototype.hidePreloader = function () {
     160    clash82.LemmeKnow.prototype.hidePreloader = function () {
    161161        this.statusElement.style.display = 'none';
    162162        this.statusElement.classList.remove(this.progressClass);
     
    169169     * @param {boolean} isError displays error or success message
    170170     */
    171     OmniProject.LemmeKnow.prototype.showMessage = function (msg, isError) {
     171    clash82.LemmeKnow.prototype.showMessage = function (msg, isError) {
    172172        this.statusElement.classList.add(isError === undefined || isError === true ? this.errorClass : this.successClass);
    173173        this.statusElement.style.display = 'block';
     
    178178     * Clears status message box.
    179179     */
    180     OmniProject.LemmeKnow.prototype.clearStatus = function () {
     180    clash82.LemmeKnow.prototype.clearStatus = function () {
    181181        this.statusElement.style.display = 'none';
    182182        this.statusElement.classList.remove(this.errorClass);
  • wp-lemme-know/trunk/plugin.php

    r1553069 r1566665  
    33/*
    44Plugin Name: Lemme Know
    5 Plugin URI:  http://github.com/omniproject/wp-lemme-know
     5Plugin URI:  http://github.com/clash82/wp-lemme-know
    66Description: Sends e-mail notification for subscribers when a new post is published.
    7 Version:     0.2.0
     7Version:     0.3.0
    88Author:      Rafał Toborek
    99Author URI:  http://toborek.info/about/
  • wp-lemme-know/trunk/readme.txt

    r1553050 r1566665  
    3333Feel invited to contribute if you can help make this plugin better :-)
    3434
    35 Visit https://github.com/omniproject/wp-lemme-know, fork the project, add your feature and create a Pull Request. I'll be happy to review and add your changes.
     35Visit https://github.com/clash82/wp-lemme-know, fork the project, add your feature and create a Pull Request. I'll be happy to review and add your changes.
    3636
    3737== Screenshots ==
     
    4343
    4444== Changelog ==
     45
     46= v0.3.0 =
     47* replaced SwiftMailer with built-in PHPMailer (decreased plugin size!)
    4548
    4649= v0.2.0 =
  • wp-lemme-know/trunk/src/defaults.php

    r1553050 r1566665  
    3333            'smtp_host' => '',
    3434            'smtp_port' => '25',
    35             'smtp_auth_mode' => '',
     35            'smtp_auth_mode' => 'LOGIN',
    3636            'smtp_encryption' => '',
    3737            'smtp_user' => '',
  • wp-lemme-know/trunk/src/publish.php

    r1553050 r1566665  
    88    exit;
    99}
    10 
    11 $autoloaderPath = __DIR__.'/../vendor/autoload.php';
    12 if (!file_exists($autoloaderPath)) {
    13     die (sprintf(
    14         'ERROR: file `%s` cannot be found. Did you install all dependencies using `composer install` command?',
    15         $autoloaderPath
    16     ));
    17 }
    18 require_once __DIR__.'/../vendor/autoload.php';
    1910
    2011add_action('transition_post_status', 'wp_lemme_know_publish_callback', 10, 3);
     
    4940    ini_set('max_execution_time', 0);
    5041
    51     $message = Swift_Message::newInstance($options->getOption('mail_title'))
    52         ->setFrom($options->getOption('mail_from'), $options->getOption('mail_from_name'))
    53         ->setReplyTo($options->getOption('mail_from'), $options->getOption('mail_from_name'))
    54         ->setReturnPath($options->getOption('mail_from'))
    55         ->setContentType('text/html');
     42    require_once ABSPATH.'wp-includes/class-phpmailer.php';
     43    $mailer = new PHPMailer(true);
    5644
    57     $transport = Swift_MailTransport::newInstance();
    5845    if ($options->getOption('mailer_type') === 'smtp') {
    59         $transport = Swift_SmtpTransport::newInstance($options->getOption('smtp_host'), $options->getOption('smtp_port'))
    60             ->setUsername($options->getOption('smtp_user'))
    61             ->setPassword($options->getOption('smtp_pass'));
     46        require_once ABSPATH.'wp-includes/class-smtp.php';
    6247
    63         if (!empty($options->getOption('smtp_auth_mode'))) {
    64             $transport->setAuthMode($options->getOption('smtp_auth_mode'));
    65         }
     48        $mailer->isSMTP();
     49        $mailer->SMTPAutoTLS = false;
     50        $mailer->SMTPAuth = true;
     51        $mailer->Host = $options->getOption('smtp_host');
     52        $mailer->Port = $options->getOption('smtp_port');
     53        $mailer->Username = $options->getOption('smtp_user');
     54        $mailer->Password = $options->getOption('smtp_pass');
     55        $mailer->SMTPSecure = $options->getOption('smtp_encryption');
     56        $mailer->AuthType = $options->getOption('smtp_auth_mode');
    6657
    67         if (!empty($options->getOption('smtp_port'))) {
    68             $transport->setPort($options->getOption('smtp_port'));
    69         }
     58        // additional settings for PHP 5.6
     59        $mailer->SMTPOptions = [
     60            'ssl' => [
     61                'verify_peer' => false,
     62                'verify_peer_name' => false,
     63                'allow_self_signed' => true,
     64            ]
     65        ];
    7066    }
    7167
    72     $mailer = Swift_Mailer::newInstance($transport);
     68    $mailer->setFrom($options->getOption('mail_from'), $options->getOption('mail_from_name'));
     69    $mailer->isHTML(true);
     70    $mailer->Subject = $options->getOption('mail_title');
     71    $mailer->CharSet = 'UTF-8';
    7372
    7473    foreach ($subscribers as $item) {
    75         $message->setBody(wp_lemme_know_parse_body(
     74        $mailer->clearAddresses();
     75        $mailer->clearReplyTos();
     76
     77        $mailer->Body = wp_lemme_know_parse_body(
    7678            $options->getOption('mail_body'),
    7779            $post,
    78             $item['hash'])
     80            $item['hash']
    7981        );
    80         $message->setTo($item['email'], $item['email']);
     82        $mailer->addAddress($item['email'], $item['email']);
     83        $mailer->addReplyTo($item['email'], $item['email']);
    8184
    8285        try {
    83             $mailer->send($message);
    84         } catch (Swift_TransportException $e) {
    85             // do nothing
     86            $mailer->send();
     87        } catch (Exception $e) {
     88            error_log(sprintf('wp-lemme-know error: %s', $e->getMessage()));
    8689        }
    8790    }
  • wp-lemme-know/trunk/src/settings.php

    r1553050 r1566665  
    280280function wp_lemme_know_smtp_auth_mode_callback()
    281281{
    282     printf('<select name="wp_lemme_know_options[smtp_auth_mode]"><option value="" %s>%s</option>><option value="plain" %s>%s</option><option value="login" %s>%s</option><option value="cram-md5" %s>%s</option></select>',
    283         selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), '', false),
    284         __('none'),
    285         selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), 'plain', false),
    286         'plain',
    287         selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), 'login', false),
    288         'login',
    289         selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), 'cram-md5', false),
    290         'cram-md5'
     282    printf('<select name="wp_lemme_know_options[smtp_auth_mode]"><option value="PLAIN" %s>%s</option><option value="LOGIN" %s>%s</option><option value="CRAM-MD5" %s>%s</option></select>',
     283        selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), 'PLAIN', false),
     284        'PLAIN',
     285        selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), 'LOGIN', false),
     286        'LOGIN',
     287        selected(WP_LemmeKnowDefaults::getInstance()->getOption('smtp_auth_mode'), 'CRAM-MD5', false),
     288        'CRAM-MD5'
    291289    );
    292290}
  • wp-lemme-know/trunk/templates/widget.php

    r1534536 r1566665  
    2121<script>
    2222    (function() {
    23         new OmniProject.LemmeKnow({
     23        new clash82.LemmeKnow({
    2424            widgetId: '<?= $fieldSettings['widget_id']; ?>',
    2525            errorMsg: '<?= $fieldSettings['error_msg']; ?>',
Note: See TracChangeset for help on using the changeset viewer.