以下に示すように、SMTPホストを使用したメール送信にPHPコードを使用しました:
ini_set('SMTP','myserver');
ini_set('smtp_port',25);
$to = $email;
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: NO-REPLY<[email protected]>" . "\r\n";
$subject = "Confirmation For Request";
$message = '<html>
<body>
<p>Hi '.$firstname.' '.$lastname.'</p>
<p>
We recieved below details from you. Please use given Request/Ticket ID for future follow up:
</p>
<p>
Your Request/Ticket ID: <b>'.$ticketID.'</b>
</p>
<p>
Thanks,<br>
'.$team.' Team.
</p>
</body>
</html>';
mail( $to, $subject, $message, $headers );
Windows Localhostでコードを実行すると、メールを正常に受信しますが、Linuxセットアップで同じコードを適用すると、メールを受信しませんが、mail()関数はLinuxマシンでもtrueを返します。 .。。
Windows localhostとLinuxサーバーの両方のphpinfoを調べたところ、メールパラメータについて、1つの違いが見つかりました。
Windowsではsendmail_path == "No Value"が見つかりましたが、Linuxサーバーでは "usr/sbin/sendmail -t-i"と表示されます。
誰かがこの問題を解決するのを手伝ってもらえますか?
注:WindowsではWAMPセットアップですが、Linuxは専用サーバーです...
私は以前にこれを見たことがあり、PHP.iniには2つのキーがありますsendmail_from
http://php.net/sendmail-from (Win32の場合)およびsendmail_path
http://php.net/sendmail-path (Unixの場合)LinuxのWampまたは同様のセットアップでは、このキーのデフォルトはme @ localhostであり、実際のメールサーバーではme @localhostになります。その電子メールアドレスはサーバー上に存在しないため、ユーザーとして拒否します。
次のようなものを追加してみてください...
ini_set('sendmail_from','[email protected]')