PHP code example of itinerisltd / wp-phpmailer
1. Go to this page and download the library: Download itinerisltd/wp-phpmailer library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
itinerisltd / wp-phpmailer example snippets
define('WP_PHPMAILER_DRIVER', 'mailhog');
define('WP_PHPMAILER_DRIVER', 'mailtrap');
define('MAILTRAP_USERNAME', 'your-mailtrap-username');
define('MAILTRAP_PASSWORD', 'your-mailtrap-password');
define('WP_PHPMAILER_DRIVER', 'sendgrid');
define('SENDGRID_API_KEY', 'your-sendgrid-api-key');
// Optional. Useful if you have email authentication configurated.
define('SENDGRID_FROM_ADDRESS', '[email protected] ');
define('SENDGRID_FROM_NAME', 'John Doe');
define('SENDGRID_FROM_AUTO', true);
class MyCustomDriver implements DriverInterface
{
public static function makeConfig(ConstantRepository $constantRepo): ConfigInterface
{
$config = new Config();
$config->set('auth', true);
$config->set('host', 'smtp.custom.test');
$config->set('port', 587);
$config->set('protocol', 'tls');
$config->set(
'username',
$constantRepo->getRequired('MY_CUSTOM_USERNAME')
);
$config->set(
'password',
$constantRepo->getRequired('MY_CUSTOM_PASSWORD')
);
$config->set(
'fromAddress',
$constantRepo->get('MY_CUSTOM_FROM_ADDRESS')
);
$config->set(
'fromName',
$constantRepo->get('MY_CUSTOM_FROM_NAME')
);
$config->set(
'fromAuto',
$constantRepo->get('MY_CUSTOM_FROM_AUTO')
);
return $config;
}
}
add_filter('wp_phpmailer_drivers', function (array $drivers): array {
$drivers['my-custom-driver'] = MyCustomDriver::class;
return $drivers;
});
// wp-config.php
define('WP_PHPMAILER_DRIVER', 'my-custom-driver');
define('MY_CUSTOM_USERNAME', 'xxx');
define('MY_CUSTOM_PASSWORD', 'xxx');
// Optional.
define('MY_CUSTOM_FROM_ADDRESS', 'xxx');
define('MY_CUSTOM_FROM_NAME', 'xxx');
define('MY_CUSTOM_FROM_AUTO', true);
add_filter('wp_phpmailer_drivers', function (array $drivers): array {
$drivers['my-custom-driver'] = MyCustomDriver::class;
return $drivers;
});
add_filter('wp_phpmailer_config_mappings', function (array $mappings): array {
$mappings['xxx'] = 'yyy';
return $mappings;
});
// The above filter results in:
add_action( 'phpmailer_init', function (PHPMailer $phpmailer) {
// $this->config comes from `DriverInterface::makeConfig`.
$phpmailer->xxx = $this->config->get('yyy');
});