获取自定义php联系人表单以向exchange 365帐户发送电子邮件

获取自定义php联系人表单以向exchange 365帐户发送电子邮件,php,email,exchange-server,contact,contact-form,Php,Email,Exchange Server,Contact,Contact Form,我有一个带有自定义php联系人表单的网站,我希望将电子邮件提交到exchange 365电子邮件地址。它不起作用,我意识到这是由于microsoft 365 exchange需要身份验证 我已允许在exchange设置中使用IP,但运气不佳 联系人表单适用于次要非exchange电子邮件,即在我的服务器上托管的具有POP3设置的电子邮件,因此我知道在不使用exchange电子邮件时,该表单是可以使用的 我做了一些研究,发现它可能需要在联系人表单中使用SMTP密码和用户名。老实说,我对PHP比较陌

我有一个带有自定义php联系人表单的网站,我希望将电子邮件提交到exchange 365电子邮件地址。它不起作用,我意识到这是由于microsoft 365 exchange需要身份验证

我已允许在exchange设置中使用IP,但运气不佳

联系人表单适用于次要非exchange电子邮件,即在我的服务器上托管的具有POP3设置的电子邮件,因此我知道在不使用exchange电子邮件时,该表单是可以使用的

我做了一些研究,发现它可能需要在联系人表单中使用SMTP密码和用户名。老实说,我对PHP比较陌生,这是唯一的方法吗?在代码中包含密码等感觉不太安全

这是我的表单代码,适用于非exchange 365电子邮件:

PHP:


请说明我是否可以使用此联系表向exchange电子邮件地址发送电子邮件,如果可以,我的选项是什么

我真的不想使用第三方联系表,如联系表7或类似的东西,如果可能的话,请

非常感谢您的帮助


谢谢

我有两个建议给你

转到并下载它。将其放入名为mail的目录中,然后在下面的目录中使用以下代码:

include("mail/class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();
$mail->Host     = "localhost";
$mail->SMTPAuth = false;
$mail->Username = "your-username";
$mail->Password = "your-password";              

$mail->From     = 'you@domain.com';
$mail->FromName = 'Your Name';

$mail->AddAddress('recipient@domain.com'); 

$mail->IsHTML(true);

$mail->Subject  =  'Subject line goes here';

$mail->Body     =  'Email body goes here';
$mail->AltBody  =  'Email body goes here';

$mail->Send();
将您的SMTP身份验证详细信息放在这里就可以了

下一步是转到并复制您看到的电子邮件地址。向此地址发送电子邮件,然后返回mail-tester.com检查结果。这将告诉您是否有任何问题-可能缺少DKIM/SPF记录。如果是这样的话,那就和你的主人谈谈,他们会帮你的(或者在这里发一个新问题,其他人可以帮你)

使用PHPMailer比使用PHP的mail()函数发送电子邮件要健壮得多

编辑-类似这样的东西

<?php 

    $pagetitle      =   "Contact Us";
    $description    =   "";
    $keywords       =   "";

    include($_SERVER['DOCUMENT_ROOT']."/includes/header.php");
    $name = ($_POST['name']);
    $email = ($_POST['email']);
    $message = ($_POST['message']);
    $from = ($_POST['email']);
    $to = 'hello@mydomain.co.uk'; 
    $subject = "Enquiry from Visitor " . $name;
    $human = ($_POST['human']);

    if (isset($_POST['submit']) && $human == '4') {   

        include("mail/class.phpmailer.php");

        $mail = new PHPMailer();

        $mail->IsSMTP();
        $mail->Host     = "localhost";
        $mail->SMTPAuth = false;
        $mail->Username    = "your-username";
        $mail->Password    = "your-password";              

        $mail->From     = $from;
        $mail->FromName = $name;

        $mail->AddAddress($to); 

        $mail->IsHTML(true);

        $mail->Subject  =  $subject;

        $mail->Body     =  $message;
        $mail->AltBody  =  $message;

        $mail->Send();     

        echo '<p>Thanks for getting in touch. Your message has been sent & We will get back to you shortly!</p>';        

    } elseif (isset($_POST['submit']) && $human != '4') {
        echo '<p>You answered the anti-spam question incorrectly!</p>';
    }

?>


Um,你永远不会调用
mail()
…@johncode-doh!很抱歉,我还有它,我会把它贴在这里,我把它移动了一下,因为我读到一些东西说它不应该与exchange电子邮件一起工作,但我确实把它放了回去,它只是稍微向下一点,输入和反垃圾邮件代码正好。您的HTML保持原样。只需去掉$headers行,然后用我的代码块替换对mail()的调用。试一试,比你想象的容易。不,这些都可以保留。不,你不需要这样做。只需单击“克隆或下载”,然后选择下载zip。您是否已将zip中的所有内容上载到邮件目录中?看来你没有骗我们。
<?php 

    $pagetitle      =   "Contact Us";
    $description    =   "";
    $keywords       =   "";

    include($_SERVER['DOCUMENT_ROOT']."/includes/header.php");
    $name = ($_POST['name']);
    $email = ($_POST['email']);
    $message = ($_POST['message']);
    $from = ($_POST['email']);
    $to = 'hello@mydomain.co.uk'; 
    $subject = "Enquiry from Visitor " . $name;
    $human = ($_POST['human']);

    if (isset($_POST['submit']) && $human == '4') {   

        include("mail/class.phpmailer.php");

        $mail = new PHPMailer();

        $mail->IsSMTP();
        $mail->Host     = "localhost";
        $mail->SMTPAuth = false;
        $mail->Username    = "your-username";
        $mail->Password    = "your-password";              

        $mail->From     = $from;
        $mail->FromName = $name;

        $mail->AddAddress($to); 

        $mail->IsHTML(true);

        $mail->Subject  =  $subject;

        $mail->Body     =  $message;
        $mail->AltBody  =  $message;

        $mail->Send();     

        echo '<p>Thanks for getting in touch. Your message has been sent & We will get back to you shortly!</p>';        

    } elseif (isset($_POST['submit']) && $human != '4') {
        echo '<p>You answered the anti-spam question incorrectly!</p>';
    }

?>