Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MAMP上的MediaWiki,OSX 10.8.5:PHP的mail()函数中存在未知错误_Php_Mysql_Mediawiki_Mamp - Fatal编程技术网

MAMP上的MediaWiki,OSX 10.8.5:PHP的mail()函数中存在未知错误

MAMP上的MediaWiki,OSX 10.8.5:PHP的mail()函数中存在未知错误,php,mysql,mediawiki,mamp,Php,Mysql,Mediawiki,Mamp,我维护着一个Mediawiki网站,直到最近,一切都运转良好。用户可以登录、创建页面、注册电子邮件地址等 但是,当我的一个用户尝试创建新帐户时,她从未收到来自服务器的电子邮件确认,但从未收到任何错误消息。以前,用户会从apache@myurl.org“与链接和一切。我涉猎了这个问题,并尝试切换到另一个电子邮件地址,通过首选项菜单。但是,在输入新的电子邮件地址后,页面显示以下亮红色错误消息: 发送邮件时出错:PHP的邮件函数中存在未知错误 我尝试创建一个测试用户,在创建帐户后,我收到了一条稍有不同

我维护着一个Mediawiki网站,直到最近,一切都运转良好。用户可以登录、创建页面、注册电子邮件地址等

但是,当我的一个用户尝试创建新帐户时,她从未收到来自服务器的电子邮件确认,但从未收到任何错误消息。以前,用户会从apache@myurl.org“与链接和一切。我涉猎了这个问题,并尝试切换到另一个电子邮件地址,通过首选项菜单。但是,在输入新的电子邮件地址后,页面显示以下亮红色错误消息:

发送邮件时出错:PHP的邮件函数中存在未知错误

我尝试创建一个测试用户,在创建帐户后,我收到了一条稍有不同的消息:电子邮件是一封简单的gmail,没有奇怪的字符或任何东西:

wikiname无法发送您的确认邮件。请检查您的电子邮件地址是否包含无效字符。 Mailer返回:PHP的邮件函数中存在未知错误

我在谷歌上搜索了这个错误,发现这个错误出现在管理员设置SMTP服务器时,与我所做的工作无关。我找不到任何其他有用的信息

我确保wiki用户可以访问mysql数据库,并且LocalSettings.php具有正确的mysql登录信息

电子邮件设置在LocalSettings.php中没有更改,并且在以前工作过:

$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO
$wgEmergencyContact = "apache@myurl.org";
$wgPasswordSender = "apache@myurl.org";
我唯一能想到的另一件事是,我在不久前更改了Apache端口,但从那时起其他用户已经创建了帐户并成功验证了他们的电子邮件

我正在OSX 10.8.5上运行MAMP,包括:

MediaWiki 1.22.5

php 5.5.10

mysql 5.5.34


在mediaWiki文档上找到解决方案

将以下内容放入,对EmailAccount和EmailPassword进行必要的替换:

$wgSMTP = array(
        'host' => 'ssl://smtp.gmail.com',
        'IDHost' => 'gmail.com',
        'port' => 465,
        'username' => 'yourEmailAccount@gmail.com',
        'password' => 'yourEmailPassword',
        'auth' => true
);
然后安装发送邮件所需的软件包

$ sudo pear install mail
$ sudo pear install net_smtp
在此之后,可能会出现身份验证失败类型错误。你需要登录你正在使用的gmail帐户,并确认刚刚登录的人是你。您只需要验证一次。gmail会给你发一封电子邮件,你只要按照指示去做就行了

我刚刚想出来了

对于那些遇到同样问题的人,以下是我如何解决的:

开放式MAMP 打开首选项菜单,选择PHP选项卡 在缓存下拉菜单中,选择“APC”,我的“关闭” 单击“确定”,然后键入管理员密码 现在返回wiki并重新发送确认电子邮件。 我还没有尝试过其他缓存选项,但它们可能也能工作

问题是includes/mail/UserMailer.php设置了sendmail的-f选项,即使已经在其他地方设置了php.ini

现在只需将这一行注释掉:

# $extraParams .= ' -f ' . $returnPath;

我试过了,当我尝试发送确认电子邮件时,我收到了:[c13dd177]2014-08-13 20:23:39:MWException类型的致命异常。我尝试将LocalSettings中的$wgPasswordSender更改为我的gmail地址,但没有更改错误。执行所有这些操作后,我仍然会收到此类错误:[fde0c5c3]2014-08-14 13:31:56:MWException类型的致命异常。我看到它来自wiki的$wgstp页面。我没有试图设置SMTP服务器,这真的与我的系统有关吗?