在Office365中使用php的默认mail()函数

时间:2018-08-15 07:24:47

标签: php email smtp office365 phpmailer

是否可以在php.ini或其他地方设置SMTP设置,以使默认mail()函数与我的office365邮件帐户一起使用?我不想使用像PHPMailer这样的API。


PHP邮件程序的问题是它不会发送出网站所在的域,我得到的错误是:“无法实例化邮件功能。”

除了PHPmailer可以正常工作之外,您知道如何解决此问题吗? 当我更改“ $ to”行时,会收到错误消息。

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require '../../lib/src/Exception.php';
require '../../lib/src/PHPMailer.php';
require '../../lib/src/SMTP.php';

$to = 'info@***.nl';
$subject = 'PHPMailer GMail SMTP test';
$message = "test body";

$mailer = new PHPMailer;
//$mailer->isSMTP(); 
$mailer->SMTPDebug = 2; // 0 = off (for production use) - 1 = client messages - 2 = client and server messages
$mailer->Host = "smtp.office365.com"; // use $mailer->Host = gethostbyname('smtp.gmail.com'); // if your network does not support SMTP over IPv6
$mailer->Port = ***; // TLS only
$mailer->SMTPSecure = 'tls'; // ssl is depracated
$mailer->SMTPAuth = true;
$mailer->Username = '***';
$mailer->Password = '***';
$mailer->setFrom('noreply@***.nl','**',0);
$mailer->addAddress($to, '**');
$mailer->addReplyTo('info@**.nl','**');
$mailer->Subject = $subject;
$mailer->msgHTML($message); //$mailer->msgHTML(file_get_contents('contents.html'), __DIR__); //Read an HTML message body from an external file, convert referenced images to embedded,
$mailer->AltBody = 'HTML messaging not supported';
// $mailer->addAttachment('images/phpmailer_mini.png'); //Attach an image file

if(!$mailer->send()){
    //echo "Mailer Error: " . $mailer->ErrorInfo;
    echo 0;
}else{
    echo 1;
    //$_SESSION['mailerfeedback'] = "Bedankt voor je bericht!";
    //header('Location: contact.php');
}

1 个答案:

答案 0 :(得分:3)

您使用的是本地主机服务器还是主机服务器?

如果您正在运行主机服务器,请与您的主机服务器提供商联系。

如果您在本地主机服务器上运行,请确保您的计算机上也有本地主机邮件服务器。邮件服务器可以连接到您的SMTP服务器。

要配置,请打开php.ini文件,搜索[邮件功能],然后更改邮件服务器的详细信息。这应该是本地邮件服务器或ISP的邮件服务器。

[mail function]
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

保存php.ini之后,然后重新启动服务器。 然后登录到您的邮件帐户,转到设置并启用IMAP。

如果本地计算机上没有邮件服务器,那么一个好主意是下载可用的库,例如PHPMailer,PEAR,Fake sendmail ...有很多资源向您展示如何设置和配置本地邮件服务器。