0

PHP フォームからメールを送信すると、送信されたメッセージが表示されますが、個人のメールには反映されないという問題に直面しています。正確な解決策が見つからなくても、簡単なメールフォームを見つけて解決策を探していました。誰かが解決策を知っている場合は、親切に共有して助けてください。

<?php
function spamcheck($field)
  {
    $field=filter_var($field, FILTER_SANITIZE_EMAIL);
    if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
    return TRUE;
    }
  else
    {
    return FALSE;
    }
  }

if (isset($_REQUEST['email']))
  {
  $mailcheck = spamcheck($_REQUEST['email']);
  if ($mailcheck==FALSE)
    {
    echo "Invalid input";
    }
  else
    {
    $email = $_REQUEST['email'] ;
    $subject = $_REQUEST['subject'] ;
    $message = $_REQUEST['message'] ;
    mail("someone@gmail.com", "Subject: $subject",
    $message, "From: $email" );
    echo "Thank you for using our mail form";
    }
  }
else
  {
  echo "<form method='post' action='mailform.php'>
  Email: <input name='email' type='text'><br>
  Subject: <input name='subject' type='text'><br>
  Message:<br>
  <textarea name='message' rows='15' cols='40'>
  </textarea><br>
  <input type='submit'>
  </form>";
  }
?>
4

1 に答える 1

0

より良い構造 (PHP 5 オブジェクト) を得るには、SwiftMailer を使用してみてください: http://swiftmailer.org/

        require_once('swiftBundle/lib/swift_required.php');

        $body='your HTML';

        // SMTP
        $transport = Swift_MailTransport::newInstance();

        $mailer = Swift_Mailer::newInstance($transport);

        $message = Swift_Message::newInstance()
        ->setSubject('Subject Mail')
        ->setFrom(array('mail' => 'name'))
        ->setTo(array('mail' => 'name'))
        ->setBody($body);

        $type = $message->getHeaders()->get('Content-Type');
        $type->setValue('text/html');
        $type->setParameter('charset', 'utf-8');

        $result = $mailer->send($message);
于 2013-09-27T07:44:24.507 に答える