我是新来的,所以请耐心等待。我对代码很苛刻,我主要是一个webdesigner,而不是开发人员。但我自己的网络开发人员正在努力解决这个问题,所以我试图找到一些帮助。 所以,我们在Virtuemart商店遇到了这个问题,运行Joomla的2.5.23版本和VM 2.6.10。
服务器信息:
所以这不是在任何地方发送邮件。我们在测试服务器上得到它,在那里,生活很美好。它正在发送电子邮件。测试服务器运行PHP 5.24。
我已经用它来看看这是否结束了:
<?php
$to = "dontsentmemail@gmail.com";
if( mail( $to , 'This is a test message.' , 'Is this working?' ) ) {
echo 'Email sent.';
} else {
echo 'Email failed to send.';
}
?>
这很好用。而且我要拔掉我所有的头发。我们已经尝试过SMTP邮件处理,并再次像测试服务器上的魅力一样工作,但它不会在实时网站上工作。
有人知道VM / joomla是直接使用mail()还是使用JUtility :: sendMail()作为默认值,如果我们可以更改它,使它工作?有人有任何想法吗?
答案 0 :(得分:1)
修改强>
我不知道Joomla已经包含了自己的PHPMailer版本。请参阅Lodder的答案,以获得更好的开箱即用解决方案!
尝试切换到专家邮件库,例如PHPMailer发送邮件,而不是php的邮件功能。
我也有类似的问题,已发送但尚未发送的电子邮件,也没有退回邮件。 PHPMailer设法发送了已经发送的电子邮件。
<?php
require_once('path/to/PHPMailerAutoload.php');
//Create a new PHPMailer instance
$mail = new PHPMailer();
// Set PHPMailer to use the sendmail transport
$mail->isSendmail();
// Set who the message is to be sent from
// Name is optional
$mail->setFrom('somebody@yourdomain.com', 'Joe Bloggs');
//Set who the message is to be sent to
// Name is optional
$mail->addAddress('dontsentmemail@gmail.com', 'Jane Bliggs');
//Set the subject line
$mail->Subject = 'Is this working?';
// Set plain text body
$mail->IsHTML(false);
$mail->Body = 'This is a test message.';
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
}
答案 1 :(得分:1)
我个人会使用Joomla的内置JMail
类,它使用 PHPMailer 。看看以下内容:
$mailer = JFactory::getMailer();
$mailer->setSender('dontsentmemail@gmail.com');
$mailer->addRecipient('from@emailaddress.com');
$mailer->setSubject('Your subject');
$body = "Some email text";
$mailer->setBody($body);
$send = $mailer->Send();
if ( $send !== true )
{
echo 'Error sending email';
}
else
{
echo 'Mail sent';
}
您可能希望将from@emailaddress.com
更改为适合您需求的内容。此类还有一些其他功能,可以在Joomla文档中找到:
http://docs.joomla.org/Sending_email_from_extensions
我不知道您使用的是单独的PHP文件。在PHP文件的顶部,您需要像这样导入Joomla框架:
define( '_JEXEC', 1 );
define('JPATH_BASE', __DIR__);
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$app = JFactory::getApplication('site');
您可能需要更改JPATH_BASE
的值,以便脚本指向Joomla网站的根目录,相对于PHP文件所在的位置。
希望这有帮助