web-dev-qa-db-ja.com

PHPメール()関数のSMTP詳細の設定

私は答えを探していて、この問題に対して多くのことを試しました。

私のスクリプトはウェブホスト上では正常に動作しますが、他の専用サーバーにスクリプトを移動すると、メールは配信されません。今、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 = "[email protected]";
    $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 = "[email protected]"; // SMTP username  
$mail->Password = "password"; // SMTP password 

?>

SMTP設定を正しく設定するにはどうすればよいですか?

11
inpbox

Windowsのみ:ini_set()関数ドキュメントSMTPドキュメント および smtp_portドキュメント 設定:

ini_set('SMTP', 'mysmtphost'); 
ini_set('smtp_port', 25); 
5
heximal

Php.iniを確認して、これらの値を設定できます。

PHPマニュアルの説明は次のとおりです。 http://php.net/manual/en/mail.configuration.php

アプリケーションで複数の異なるSMTPサーバーを使用する場合は、「より大きな」メールフレームワークを使用することをお勧めします。 Swiftmailer

2
Bjoern

専用サーバーからポート465でsmtp.gmail.comにtelnetで接続してみてください。インターネットプロバイダーによってブロックされている可能性があります

0