PHP联系表格最佳实践

时间:2010-12-18 16:22:40

标签: php smtp sendmail google-apps vps

我正在网站上设置PHP联系表单。我正在使用Swift Mailer库发送邮件,我的域名电子邮件是通过Google Apps发送的。是否可以将Google Apps用于公司电子邮件,并在我的VPS上使用sendmail / SMTP从联系页面发送电子邮件?我遇到的问题是我无法动态生成发件人地址,谷歌的服务器强迫它成为电子邮件正在经历的电子邮件地址。提前谢谢。

2 个答案:

答案 0 :(得分:0)

我使用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);
}

答案 1 :(得分:0)

在做了一些阅读之后,我意识到我根本不需要邮件库。我正在使用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");
}

这对我来说非常合适。希望它可以帮助别人。