gpt4 book ai didi

PHP mail() 函数在 namecheap 服务器中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:53 26 4
gpt4 key购买 nike

我是 namecheap 域服务器的新手。我正在尝试在该 namecheap 服务器上发送一封简单的邮件。它没有发送邮件并返回了一个空值,没有任何错误。

这是我的示例代码。

$to = "raamanmca@gmail.com";
$subject = "HTML email";
$message = "Hello this is testing mail";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// More headers
$headers .= 'From: <ramalingam@binaryswan.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

if(mail($to,$subject,$message,$headers))
{
echo "Mail sent...";
}
else
{
echo "Mail not sent";
}

假设我在 namecheap 服务器邮件中分配 $to 和 $from mailID,然后邮件成功发送。

例子:

$to='test@binaryswan.com' 
$from='hello@binaryswan.com'

但我正在将邮件 $to 或 $from 更改为 gmail 服务器,如 test@gmail.com 然后它不会发送邮件,并且还会返回空值而不会出错。如何修复。

来自 ( Not receiving email from the PHP mail() method )只有在我们的服务器上托管的域才能在“发件人”字段中使用。任何不是由我们托管的域都不能添加到“发件人”字段。我们必须采取这种措施来防止使用论坛、留言簿和联系表单脚本发送垃圾邮件。为了使您的站点脚本正常工作,您应该将“发件人”字段设置为已在您的 cPanel 中创建的电子邮件帐户。

这与我的问题有关,但我不知道如何“在我的 cPanel 中将‘发件人’字段设置为电子邮件帐户。”

最佳答案

Darren 是对的。我正在将 PHP mail() 函数更改为 PHPMailer mail() 方法。下载链接 - https://github.com/PHPMailer/PHPMailer现在邮件发送成功了。感谢评论。这是答案代码:

require 'class.phpmailer.php';

$mail = new PHPMailer;

$mail->Host = 'smtp1.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('ramalingam.p@pickzy.com', 'Rama Lingam'); // Add a recipient
$mail->addAddress('raamanmca@gmail.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->isHTML(true);

$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo '<br>Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}

关于PHP mail() 函数在 namecheap 服务器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com