2016-08-19 6 views
0

PHPMailerクラスでメールを送信すると問題が発生しました。このメッセージが表示された後、「メッセージが送信されました。迷惑メールフォルダと空のフォルダもチェックしています。ここPHPMailerの連絡フォームでメールを送信するときに問題が発生しました

は、HTML形式のコードです:

<form action="<?php echo $PHP_SELF; ?>" method="post"> 

<input type="text" class="form-control" placeholder="Name" name="name"> 

<input type="email" class="form-control" placeholder="Email" name="email"> 

<input type="text" class="form-control" placeholder="Subject" name="subject"> 

<textarea class="form-control" placeholder="Message" rows="7" name="message"> </textarea> 

<input type="submit" class="form-control" name="submit" value="submit"> 

</form> 

とPHPのコードは次のとおりです。

ここ
<?php 
if(isset($_POST['email'])) { 

    if(isset($_POST['subject'])){ $subject = $_POST['subject']; } 
    if(isset($_POST['message'])){ $message = $_POST['message']; } 
    if(isset($_POST['name'])){ $name = $_POST['name']; } 
    if(isset($_POST['email'])){ $email = $_POST['email']; } 

require_once('class.phpmailer.php'); 

$mail    = new PHPMailer(); 

$body    = $message; 

$mail->SetFrom($email, $name); 

$address = "[email protected]"; 
$mail->AddAddress($address, "[email protected]"); 

$mail->Subject = $subject; 

$mail->MsgHTML($body); 

if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
    echo "Message sent!"; 
} 
} 

?> 
+3

あなたのSMTP設定を確認することをお勧めします。電子メールサーバーに有効なSMTP設定がありますか?あなたのコードから、電子メールを送信するためにSMTPサーバーを使用していません。あなたのコードが正しいのに成功が返されても、電子メールは送信されません。 – d3r1ck

+0

未設定(SMTPリレーなし)の場合、PHPMailerは 'mail()'関数と同じ転送を使います。したがって、同じ条件が適用されます。デバッグを有効にし、ログ、DKIM/SPFなどを確認してください。 – mario

+0

あなたの回答と提案をお寄せいただきありがとうございます。私はPHPコードを編集し、SMTP認証を無効にしてsmtp設定を追加しました。同じ...... –

答えて

0

HTMLコードが

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

<input type="text" class="form-control" placeholder="Name" name="name"> 

<input type="email" class="form-control" placeholder="Email" name="email"> 

<input type="text" class="form-control" placeholder="Subject" name="subject"> 

<textarea class="form-control" placeholder="Message" rows="7" name="message"> </textarea> 

<input type="submit" class="form-control" name="submit" value="submit"> 

</form> 

あり、ここであなたのphpですコード

<?php 
if (isset($_POST['submit'])) { 


    $subject = "subject : " . $_POST['subject'] . "<br>"; 
    $message = "message :" . $_POST['message'] . "<br>"; 
    $name = "name :" . $_POST['name'] . "<br>"; 
    $email = "email :" . $_POST['email'] . "<br>"; 

    $message = " 
\n $subject \n 
\n $message \n 
\n $name \n 
\n $email \n 

"; 
    echo $message; 

    include "PHPMailer_5.2.4/class.phpmailer.php"; 

    $mail = new PHPMailer; 
    $mail->isSMTP(); 
    $mail->Host = 'smtp.gmail.com'; 

    $mail->SMTPAuth = true; 
    $mail->Username = '[email protected]'; 
    $mail->Password = 'password'; 
    $mail->SMTPSecure = 'tls'; 
    $mail->Port  = 587; 
    $mail->setFrom('[email protected]', 'Mailer'); 
    $mail->addAddress('[email protected]', 'Test Name'); 
    $mail->addAttachment('fileaddress'); 
    $mail->isHTML(true); 
    $mail->Subject = $subject; 
    $mail->Body = $message; 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

    if (!$mail->Send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
    } else { 
     echo "Message sent!"; 
    } 
} 

?> 

+0

ありがとう、それはうまく動作しますが、電子メールの送信者の名前は受信トレイに表示されません、それは送信者が "ルートユーザー"であることを示しています私はそのようなコードを編集しようとしました$ name = $ _POST ['name']; $ email = $ _POST ['email'];しかし、IDは動作しませんでしたし、メールを送信しませんでした –

+0

私は自分のlocalhostで任意のrootユーザーを取得していません。 –

関連する問題