为php mail()函数设置SMTP详细信息

11

我一直在寻找答案,尝试了很多方法来解决这个问题。

我的脚本在我的网络托管上运行正常,但是当将其移动到另一台专用服务器时,邮件从未被发送。现在我需要设置SMTP服务器,但无法正确设置。

顺便说一下,我正在使用Gmail应用程序。代码如下所示。

<?php

if(!$_POST) exit;

$email = $_POST['email'];


//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("@",$email )){
    $error.="Invalid email address entered";
    $errors=1;
}
if($errors==1) echo $error;
else{
    $values = array ('name','email','telephone','message');
    $required = array('name','email','telephone','message');

    $your_email = "xxx@example.com";
    $email_subject = "New Messag: ".$_POST['subject'];
    $email_content = "New message:\n";

    foreach($values as $key => $value){
      if(in_array($value,$required)){
        if ($key != 'subject' && $key != 'telephone') {
          if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
        }
        $email_content .= $value.': '.$_POST[$value]."\n";
      }
    }

    if(@mail($your_email,$email_subject,$email_content)) {
        echo 'Message sent!'; 
    } else {
        echo 'ERROR!';
    }
}

$mail->Mailer = "smtp";  
$mail->Host = "ssl://smtp.gmail.com";  
$mail->Port = 465;  
$mail->SMTPAuth = true; // turn on SMTP authentication  
$mail->Username = "user@gmail.com"; // SMTP username  
$mail->Password = "password"; // SMTP password 

?>

那么我该如何正确设置 SMTP 设置?


2
看看这个完美的工作解决方案:https://dev59.com/7XRB5IYBdhLWcg3wH0SW - Vishwanath Dalvi
3个回答

8

2
如何在其中设置用户名、密码和加密类型。 - Veshraj Joshi
太好了,它工作得很好。谢谢你的帖子。 - Poorna

2

我已经有正确的设置了。但仍然无法工作。这是一个简单的表格,所以我认为php邮件函数是这次最好的选择。 - inpbox
SMTP握手过程中涉及到一些细节(包括是否进行身份验证等),php邮件函数并不完全了解它们。对于简单的任务,内置的php邮件功能是解决问题的好而快速的方式,但请记住它也有其局限性。 - Bjoern
好的,但是在我的代码中,我已经设置了谷歌所需的设置。但是由于我正在使用外部SMTP服务器发送邮件到指定的电子邮件地址,我需要更改php.ini中的一些内容吗? - inpbox
1
在php.ini中,以下参数值得关注:smtp_server、smtp_port、auth_username和auth_password。也许启用error_logfile和debug_logfile,这些可能会提供你更多有关错误的信息。 - Bjoern

0

请尝试从您的专用服务器telnet到smtp.gmail.com的465端口。这可能被您的互联网服务提供商屏蔽了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接