phpmailer: répondre en utilisant seulement" répondre à " adresse
j'utilise phpmailer sur mon site web et pour aider avec les problèmes de spam, j'ai créé une boîte aux lettres pour envoyer ces e-mails à partir de (en utilisant SMTP).
j'ai mis les emails à venir l'adresse de boîte aux lettres, puis j'ai ajouté un répondre à adresse où je veux les réponses à aller à:
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tsl';
$mail->SMTPDebug = 1;
$mail->Host = EMAIL_HOST;
$mail->Port = EMAIL_PORT;
$mail->Username = EMAIL_USER;
$mail->Password = EMAIL_PASS;
$mail->SetFrom('mailbox@email.com', 'Mailbox name');
$mail->AddReplyTo('replyto@email.com', 'Reply to name');
$mail->AddAddress('user@email.com', 'User name);
les e-mails envoient avec succès et semblent passer par les filtres anti-spam ok,mais quand j'appuie sur Répondre il inclut à la fois le compte de la boîte aux lettres et le répondre à compte.
c'Est ce qui est censé se passer? Je veux seulement l'adresse de réponse apparaissent lorsque vous appuyez sur répondre. Est-ce même possible?
merci Beaucoup d'avance pour toute aide offerte!
Edit:
en Regardant les e-mails, il semble que l'adresse est arriver inclus dans la réponse au champ. Je n'ai aucune idée pourquoi!
Date: Tue, 1 May 2012 11:16:25 +0100
To: User name <user@email.com>
From: Mailbox name <mailbox@email.com>
Reply-to: Mailbox name <mailbox@email.com>, Reply to name <replyto@email.com
Subject: Email subject
Message-ID: <54c530c0d1f3ff33fc87c4c41c2c9ffd@localhost>
X-Priority: 3
X-Mailer: PHPMailer 5.1 (phpmailer.sourceforge.net)
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_54c530c0d1f3ff33fc87c4c41c2c9ffd"
--b1_54c530c0d1f3ff33fc87c4c41c2c9ffd
Content-Type: text/plain; charset = "iso-8859-1"
Content-Transfer-Encoding: 8bit
2 réponses
j'ai trouvé la réponse à cela, et il est gênant/très simple! Fondamentalement, la réponse aux adresses devait être ajoutée avant l'adresse:
$mail->AddReplyTo('replyto@email.com', 'Reply to name');
$mail->SetFrom('mailbox@email.com', 'Mailbox name');
en Regardant le phpmailer code plus en détail, c'est la ligne incriminée:
public function SetFrom($address, $name = '',$auto=1) {
$address = trim($address);
$name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
if (!self::ValidateAddress($address)) {
$this->SetError($this->Lang('invalid_address').': '. $address);
if ($this->exceptions) {
throw new phpmailerException($this->Lang('invalid_address').': '.$address);
}
echo $this->Lang('invalid_address').': '.$address;
return false;
}
$this->From = $address;
$this->FromName = $name;
if ($auto) {
if (empty($this->ReplyTo)) {
$this->AddAnAddress('ReplyTo', $address, $name);
}
if (empty($this->Sender)) {
$this->Sender = $address;
}
}
return true;
}
Spécifiquement cette ligne:
if (empty($this->ReplyTo)) {
$this->AddAnAddress('ReplyTo', $address, $name);
}
merci de votre aide tout le monde!
au moins dans les versions actuelles de PHPMailers, il y a une fonction clearReplyTos () pour vider le tableau reply-to.
$mail->ClearReplyTos();
$mail->addReplyTo(example@example.com, 'EXAMPLE');