2010-12-18 73 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