2010-12-18 5 views
0

Je suis en train de configurer un formulaire de contact PHP sur un site. J'utilise la bibliothèque Swift Mailer pour envoyer le courrier, et mon adresse e-mail de domaine est accessible via Google Apps. Est-il possible d'utiliser Google Apps pour l'e-mail de l'entreprise et d'utiliser sendmail/SMTP sur mon VPS pour envoyer des e-mails à partir de la page de contact? Le problème que j'ai est que je ne peux pas générer l'adresse de manière dynamique, les serveurs de Google forcent cela à être l'adresse e-mail que l'email traverse. Merci d'avance.PHP Contact Form Best Practice

Répondre

0

Après avoir fait un peu de lecture, je réalisais que je ne l'ai pas besoin d'une bibliothèque de courrier du tout. J'utilise la fonction mail() de PHP pour accomplir exactement ce que je voulais, envoyer du courrier via Sendmail et demander à Google Apps de gérer tous les emails de domaine. Voici le code pertinent qui fonctionne pour moi.

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

Cela fonctionne parfaitement pour moi. J'espère que ça aide quelqu'un d'autre.

0

J'utilise PHPMailer avec cette fonction ...

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

Merci pour votre réponse. Je ne pense pas que cela résoudra mon problème. Swift Mailer fonctionne parfaitement, le problème est que Google ne permettra pas de définir de manière dynamique l'adresse e-mail «de» lors de l'envoi via leur serveur SMTP. Lorsque l'administrateur du site reçoit l'e-mail du formulaire, le fait de répondre à la réponse lui renvoie l'e-mail, et non à la personne qui a rempli le formulaire de contact du site. Est-ce que ça a du sens? – Lenwood

+1

Oh désolé, vous devez ajouter l'adresse ReplyTo dans votre e-mail. –

+0

Google ignore l'information de réponse à, cependant, ils ne permettront pas qu'il soit défini dynamiquement. Peu importe ce que je place dans ce champ, l'adresse de provenance est toujours mon adresse e-mail Google Apps. Je suppose qu'ils font cela pour éviter que leurs serveurs soient utilisés pour envoyer du spam. – Lenwood