Лучшая практика в контактной форме PHP - PullRequest
0 голосов
/ 18 декабря 2010

Я настраиваю контактную форму PHP на сайте. Я использую библиотеку Swift Mailer для отправки почты, а адрес электронной почты моего домена - через Службы Google. Можно ли использовать Google Apps для электронной почты компании и использовать sendmail / SMTP на моем VPS для отправки электронной почты со страницы контактов? У меня проблема в том, что я не могу динамически сгенерировать исходный адрес, серверы Google заставляют его быть тем адресом электронной почты, по которому проходит электронное письмо. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

После некоторого чтения я понял, что мне вообще не нужна почтовая библиотека. Я использую функцию PHP mail () для достижения именно того, чего я хотел, отправляю почту из формы через sendmail и использую Google Apps для обработки всей электронной почты домена. Вот соответствующий код, который работает для меня.

// Define message variables
if(get_magic_quotes_gpc()){
  $name = stripslashes($_POST['name']);
  $email = stripslashes($_POST['email']);
  $body = stripslashes($_POST['body']);
}else{
  $name = $_POST['name'];
  $email = $_POST['email'];
  $body = $_POST['body'];
}
$subject = "Website Contact Form";
$recipient = "web@somesite.com";
$content = "NAME: $name, $email\nCOMMENT: $body\n";

$mailheader = "MIME-Version: 1.0\r\n";
$mailheader .= "From: $email\r\n";
$mailheader .= "Reply-To: $email\r\n";
$mailheader .= "Bcc: another.email@address.com" . "\r\n";

mail($recipient, $subject, $content, $mailheader) or die("Failure");
header("Location:/thankyou.php");
}

Это прекрасно работает для меня. Надеюсь, это поможет кому-то еще.

0 голосов
/ 18 декабря 2010

Я использую PHPMailer с этой функцией ...

function email($to, $subject, $body){
    require_once("class.phpmailer.php");

    $mail = new PHPMailer();

    $mail->SMTPAuth = true;
    $mail->SMTPSecure = "ssl";
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465;
    $mail->Username = "email@domain.com";
    $mail->Password = "password";

    $mail->SetFrom("anything@domain.com", "Any Thing");

    $mail->Subject = $subject;
    $mail->Body = $body;

    $mail->AddAddress($to);
    $mail->Send();
    unset($mail);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...