Hi. I tried the test and it worked. I set mail to php but I get errors.
I have since made changes to the php.php file from a document that has been circulated here and I get an error:
Fatal error: require_once() [function.require]: Failed opening required 'Mail.php' (include_path='C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5\pear;./;./includes;./pear') in E:\inetpub\vhosts\lovingmatches.com\httpdocs\forums\inc\mailhandlers\php.php on line 57
Does this error mean that PEAR is not installed, because I cannot find the Mail.php file that is called from the php.php file, after the changes were made. My host said that PEAR has been installed on the server.
This is driving me crazy.
Here's what my php.php file looks like (obviously I've changed the server acct info):
<?php
/**
* MyBB 1.4
* Copyright © 2008 MyBB Group, All Rights Reserved
*
* Website:
http://www.mybboard.net
* License:
http://www.mybboard.net/about/license
*
* $Id: php.php 4304 2009-01-02 01:11:56Z chris $
*/
// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
/**
* PHP mail handler class.
*/
class PhpMail extends MailHandler
{
/**
* Additional parameters to pass to PHPs mail() function.
*
* @var string
*/
var $additional_parameters = '';
/**
* Sends the email.
*
* @return true/false whether or not the email got sent or not.
*/
function send() {
global $lang, $mybb;
// For some reason sendmail/qmail doesn't like \r\n
$this->sendmail = @ini_get('sendmail_path');
if($this->sendmail) {
$this->headers = str_replace("\r\n", "\n", $this->headers);
$this->message = str_replace("\r\n", "\n", $this->message);
$this->delimiter = "\n";
}
// Some mail providers ignore email's with incorrect return-to path's so try and fix that here
$this->sendmail_from = @ini_get('sendmail_from');
if($this->sendmail_from != $mybb->settings['adminemail']) {
@ini_set("sendmail_from", $mybb->settings['adminemail']);
}
// If safe mode is on, don't send the additional parameters as we're not allowed to
if(ini_get('safe_mode') == 1 || strtolower(ini_get('safe_mode')) == 'on') {
$sent = @mail($this->to, $this->subject, $this->message, trim($this->headers));
}
else {
require_once "Mail.php";
$from = $this->from;
$to = $this->to;
$subject =$this->subject;
$body = $this->message;
$host = "mail.mydomain.com";
$username = "
[email protected]";
$password = "mypassword";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
$this->fatal_error("MyBB was unable to send the email using the PHP authentication function function.");
}
}
return true;
}
}
?>