2010-12-18 31 views
0

Ich richte ein PHP-Kontaktformular auf einer Website ein. Ich verwende die Bibliothek Swift Mailer, um die E-Mail zu senden, und meine E-Mail-Adresse für die Domain wird über Google Apps gesendet. Ist es möglich, Google Apps für Unternehmens-E-Mails zu verwenden und sendmail/SMTP auf meinem VPS zum Senden von E-Mails von der Kontaktseite zu verwenden? Das Problem, das ich habe, ist, dass ich die Absenderadresse nicht dynamisch generieren kann. Die Google-Server erzwingen, dass dies die E-Mail-Adresse ist, die die E-Mail durchläuft. Danke im Voraus.PHP-Kontaktformular Best Practice

Antwort

0

Nach einiger Lesung zu tun, wurde mir klar, dass ich nicht überhaupt eine E-Mail-Bibliothek brauchte. Ich benutze die mail() -Funktion von PHP, um genau das zu erreichen, was ich wollte, indem ich per sendmail Formular-Mails sende und Google Apps alle Domain-E-Mails bearbeitet. Hier ist der relevante Code, der für mich funktioniert.

// 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"); 
}

Dies funktioniert perfekt für mich. Hoffe es hilft jemand anderem.

0

Ich benutze PHPMailer mit dieser Funktion ...

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

Vielen Dank für Ihre Antwort. Ich denke nicht, dass dies mein Problem lösen wird. Swift Mailer funktioniert einwandfrei. Das Problem ist, dass Google die "Von" -E-Mail-Adresse beim Senden über den SMTP-Server nicht dynamisch festlegen kann. Wenn der Website-Administrator die E-Mail-Adresse des Formulars erhält, sendet die Antwort die E-Mail direkt an ihn zurück, nicht an die Person, die das Kontaktformular der Website ausgefüllt hat. Macht das Sinn? – Lenwood

+1

Oh, Entschuldigung, Sie müssen ReplyTo Adresse in Ihrer E-Mail hinzufügen. –

+0

Google ignoriert die Antwort-zu-Info zwar, sie lässt jedoch keine dynamische Einstellung zu. Egal, was ich in dieses Feld stelle, die Absenderadresse ist immer meine Google Apps-E-Mail-Adresse. Ich gehe davon aus, dass sie dies tun, um zu vermeiden, dass ihre Server zum Senden von Spam verwendet werden. – Lenwood