0

私はしばらく前から PHP メールフォームを使用していましたが、新しい Web サイトでは機能しません。

次のエラーが発生します。

PHP 警告: mail() [function.mail]: "sendmail_from" が php.ini に設定されていないか、カスタム "From:" ヘッダーが E:\home\ -mypagefoldername- \Web\form.php の 16 行目にない

これは、form.php ファイル内の php コードです。

<?
$mensagem = "Nome: ".$_POST['nome']." \n";
//email que o usuário preencheu
$mensagem .= "Email: ".$_POST['email']." \n";
$mensagem .= "Assunto: ".$_POST['assunto']." \n";
$mensagem .= "Telefone: ".$_POST['fone']." \n";
$mensagem .= "Endereço: ". $_POST['mensagem'];
$headers = "";
//email do seu domínio hospedado
$emailsender = "email@mydomain.com";
//email de quem vai receber
$emaildestinatario = "email@mydomain.com";
$assunto = "Mensagem do Parceiro Pipa";

// Envio dos dados do Formulário para seu e-mail:
if(!mail($emaildestinatario, $assunto, $mensagem, $headers ,"-r".$emailsender))

{ 
// Se for Postfix - hospedagem linux
$headers .= "Return-Path: " . $emailsender . $quebra_linha; 
}
echo '
<script type="text/JavaScript">
alert("Email sent! Thank you!");
location.href="index.html"
</script>
';

?>

ポルトガル語でごめんなさい。

フォーム ページは、次のフォーム コードを含む単純な html ページです。

<form method="post" action="form.php">

                    <label>Nome</label>
                    <input name="nome" placeholder="Nome completo.">

                    <label>Telefone</label>
                    <input name="fone" placeholder="Número de telefone com DDD.">                    

                    <label>Assunto</label>
                    <input name="assunto" placeholder="Qual o motivo do seu contato?">                    

                    <label>Mensagem</label>
                    <textarea name="mensagem" placeholder="Escreva aqui sua mensagem."></textarea>



                    <label>Email</label>
                    <input name="email" type="email" placeholder="Email para contato.">

                    <input id="submit" name="submit" type="submit" value="Enviar">

</form>

誰か助けてくれませんか?=/

お待ちいただいてありがとうございます!

4

3 に答える 3

1

php.ini ファイルで次の設定を変更してください

電子メールを有効にするには、次の行のコメントを解除するか、行頭のセミコロンを削除する必要があります

;sendmail_from =

たとえば、この設定をこれに変更します(localhostの場合)

sendmail_from = localhost@localhost

本番サーバーを使用している場合は、ドメインに応じてデフォルトのアドレスを変更する必要があるため、administrator@domain.com

于 2013-10-08T09:32:44.017 に答える
0

以下のドキュメントに記載されているとおり、その問題を引き起こしているFromヘッダーを設定していません。

ノート:

メールを送信する場合、メールには From ヘッダーが含まれている必要があります。これは additional_headers パラメータで設定するか、php.ini でデフォルトを設定できます。

これを行わないと、次のようなエラー メッセージが表示されます。From ヘッダーは、Windows では Return-Path も設定します。

http://php.net/manual/en/function.mail.phpから

あなたの場合、使用する必要があります。

$headers = "From: webmaster@example.com" . "\r\n";
于 2013-10-08T09:27:46.207 に答える
0

それが言うように、おそらく変数にFrom:宣言がありません!$headers

<?php
   $From = "YourEmailAddress@example.com";
   $headers .= "From: Your Name <". $From .">\n";
?>

$headers弦の上部近くまで。ただし、将来の参考のために、PHPMailer クラスを確認することをお勧めします。これは、PHP をmail効率的に処理する非常に優れた安全なクラスです。

PHPMailer Github

于 2013-10-08T09:27:19.553 に答える