' )) {
// no-op
} else {
// create an instance of the Logger
$this->logger = new PostmanLogger ( get_class ( $this ) );
$this->logger->debug ( 'Starting' );
add_filter ( 'mymail_delivery_methods', array (
&$this,
'delivery_method'
) );
add_action ( 'mymail_deliverymethod_tab_postman', array (
&$this,
'deliverytab'
) );
if (mymail_option ( 'deliverymethod' ) == MYMAIL_POSTMAN_ID) {
add_action ( 'mymail_initsend', array (
&$this,
'initsend'
) );
add_action ( 'mymail_presend', array (
&$this,
'presend'
) );
add_action ( 'mymail_dosend', array (
&$this,
'dosend'
) );
add_action ( 'MYMAIL_POSTMAN_cron', array (
&$this,
'reset'
) );
}
}
}
/**
* initsend function.
*
* uses mymail_initsend hook to set initial settings
*
* @access public
* @param mixed $mailobject
* @return void
*/
public function initsend($mailobject) {
$this->logger->trace ( 'initsend' );
// disable dkim
$mailobject->dkim = false;
}
/**
* presend function.
*
* uses the mymail_presend hook to apply setttings before each mail
*
* @access public
* @param mixed $mailobject
* @return void
*/
public function presend($mailobject) {
// embedding images doesn't work
$mailobject->embed_images = false;
// use pre_send from the main class
// need the raw email body to send so we use the same option
$mailobject->pre_send ();
}
/**
* dosend function.
*
* uses the mymail_dosend hook and triggers the send
*
* @access public
* @param mixed $mailobject
* @return void
*/
public function dosend($mailobject) {
$this->logger->trace ( 'dosend' );
$this->logger->trace ( $mailobject->mailer );
// create a PostmanWpMail instance
$postmanWpMail = new PostmanWpMail ();
$postmanWpMail->init ();
// create a PostmanMessage instance
$message = $postmanWpMail->createNewMessage ();
$message->addHeaders ( $mailobject->headers );
$message->setBodyTextPart ( $mailobject->mailer->AltBody );
$message->setBodyHtmlPart ( $mailobject->mailer->Body );
$message->setBody ( $mailobject->mailer->AltBody . $mailobject->mailer->Body );
$message->setSubject ( $mailobject->subject );
$message->addTo ( $mailobject->to );
$message->setReplyTo ( $mailobject->reply_to );
$message->setAttachments ( $mailobject->attachments );
// create a PostmanEmailLog instance
$log = new PostmanEmailLog ();
// send the message and store the result
$mailobject->sent = $postmanWpMail->sendMessage ( $message, $log );
// give error message back to MyMail
$result = apply_filters ( 'postman_wp_mail_result', null );
if (! $mailobject->sent) {
$mailobject->set_error ( $result ['exception']->getMessage () );
}
}
/**
* reset function.
*
* resets the current time
*
* @access public
* @param mixed $message
* @return array
*/
public function reset() {
update_option ( '_transient__mymail_send_period_timeout', false );
update_option ( '_transient__mymail_send_period', 0 );
}
/**
* delivery_method function.
*
* add the delivery method to the options
*
* @access public
* @param mixed $delivery_methods
* @return void
*/
public function delivery_method($delivery_methods) {
$delivery_methods [MYMAIL_POSTMAN_ID] = __ ( 'Postman SMTP', Postman::TEXT_DOMAIN );
return $delivery_methods;
}
/**
* deliverytab function.
*
* the content of the tab for the options
*
* @access public
* @return void
*/
public function deliverytab() {
apply_filters ( 'print_postman_status', null );
}
/**
* activate function.
*
* @access public
* @return void
*/
public function activate() {
if (defined ( 'MYMAIL_VERSION' ) && version_compare ( MYMAIL_POSTMAN_REQUIRED_VERSION, MYMAIL_VERSION, '<=' )) {
mymail_notice ( sprintf ( __ ( 'MyMail: Change the delivery method in the %s!', Postman::TEXT_DOMAIN ), sprintf ( '%s', __ ( 'Settings', 'postman-smtp' ) ) ), '', false, 'delivery_method' );
$this->reset ();
}
}
/**
* deactivate function.
*
* @access public
* @return void
*/
public function deactivate() {
d;
if (defined ( 'MYMAIL_VERSION' ) && function_exists ( 'mymail_option' ) && version_compare ( MYMAIL_POSTMAN_REQUIRED_VERSION, MYMAIL_VERSION, '<=' )) {
if (mymail_option ( 'deliverymethod' ) == MYMAIL_POSTMAN_ID) {
mymail_update_option ( 'deliverymethod', 'simple' );
/* Translators where %s is the name of the page */
mymail_notice ( sprintf ( __ ( 'MyMail: Change the delivery method in the %s!', Postman::TEXT_DOMAIN ), sprintf ( '%s', __ ( 'Settings', 'postman-smtp' ) ) ), '', false, 'delivery_method' );
}
}
}
}
}