2010-12-18 89 views
0

我在网站上设置了一个PHP联系表格。我正在使用Swift Mailer库来发送邮件,而我的域名电子邮件是通过Google Apps发送的。是否可以将Google Apps用于公司电子邮件,并使用我的VPS上的sendmail/SMTP从联系页面发送电子邮件?我遇到的问题是我无法动态生成发件人地址,Google的服务器强制将其作为电子邮件正在经历的电子邮件地址。提前致谢。PHP联系表格最佳实践

回答

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 = "[email protected]"; 
$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: [email protected]" . "\r\n"; 

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

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

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 protected]"; 
    $mail->Password = "password"; 

    $mail->SetFrom("[email protected]", "Any Thing"); 

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

    $mail->AddAddress($to); 
    $mail->Send(); 
    unset($mail); 
} 
+0

感谢您的回复。我不认为这会解决我的问题。 Swift Mailer工作正常,问题在于Google不允许在通过SMTP服务器发送时动态设置“发件人”电子邮件地址。当网站管理员收到表格电子邮件时,点击回复会将电子邮件发回给他,而不是发送给填写该网站联系表单的人。这有意义吗? – Lenwood 2010-12-18 17:01:05

+1

对不起,您需要在您的电子邮件中添加ReplyTo地址。 – 2010-12-18 17:03:21

+0

谷歌忽略回复信息,但他们不会允许它被动态设置。无论我在该字段中输入什么内容,收件人地址始终都是我的Google Apps电子邮件地址。我认为他们这样做是为了避免让他们的服务器被用来提交垃圾邮件。 – Lenwood 2010-12-19 15:30:04