0

しばらくの間、PHPを使用してメールを送信しようとしていますが、機能しないようです。

私はチュートリアルを見ました、そしてそれらはそれを十分に単純に見えるようにします。それでも、実際には、言及されているよりも多くの作業が必要なようです。調査(これを短くするために)を通して、「From:」ヘッダーの代わりに、実際に私が与えたアドレスを持っているようです...sendmailはそれまたは何かをdaemon@ ubuntuに置き換えますか?ヘッダーを含めなくても、daemon @ ubuntuからgmailアカウントからスパムを受信します(vmでubuntuを実行し、gmailアカウントにメールを送信しています)。これは、「MAIL FROMコマンド」にエラーがあることを示すメールを送信しようとすると、エラーが発生し続ける理由を説明できると思います。

それで、私がsendmailをいじり回すことに関与する前に、これはdaemon @ ubuntuの(おそらく)犯人ですか?チュートリアルでは、sendmailのようなものについて言及していますが、実際には、それらをどのように処理するかについては詳しく説明していません。php構成ファイルでsendmailが使用されていることを確認しました。

PHPmailなどの代替メールサーバーについて聞いたことがあります。本当に必要な場合を除いて、ソフトウェアのインストールと構成に関与したくありません。したがって、sendmailが本当に価値がないと思わない限り、問題がある場合はsendmailに関するアドバイスをお勧めします。

お時間をいただきありがとうございます。

編集:VMwarePlayerによるUbuntuvmでPHPmail()関数を使用しています。

だから誰かが私のコードを見たかったのです。いろいろな可能性を試したからといって、これを避けたかったのです。今持っているものをファイルに含めます。

<?php
                    $myEmail    = "####@gmail.com";
                    $fromAddr   = $_POST['sender-email'];

                    $headers    = "MIME-Version: 1.0\r\n";
                    $headers   .= "Content-type: text/html; charset=iso-8859-1\r\n";
                    $headers   .= "From: $fromAddr\r\n";
                    $headers   .= "'X-Mailer: PHP/'" . phpversion() . "\r\n";
                    $message    = $_POST['message'];

                    $status     = mail($myEmail, $_POST['subj'], $message);

                    if($status) {
                        echo "Your message has been sent, " .$fromAddr. "!";
                    }
                    else {
                        echo "An error occurred while trying to send the mail.";
                    }
                ?>

MIMEタイプのものと、後で追加したContentタイプのもの。私はそれらなしでこれを試しました。また、ヘッダーをまったく使用せずにメールを送信しようとしましたが、それでもdaemon@ubuntuのものを取得しているようです。また、ここにコードを投稿するために自分のメールアドレスを編集しました。これも追加する必要があると思います。別のページのHTMLフォームからデータを取得しています。送信すると、このphpページにアクセスして、そのデータを取得してから電子メールを送信します(これは専門家向けではなく、Web関連の詳細を知るために行っているだけです)。

4

1 に答える 1

2

私の経験では、 Postfixは非常に使いやすく、インストールも簡単な電子メール サーバーです。localhost で電子メールを送信するには、電子メール サーバーをインストールして構成する必要があります。

于 2012-11-19T13:35:34.587 に答える