I am using this php class on a small email list manager, I am using a hotmail email and smtp.live.com to send the emails. It works fine, but I am getting some bounced emails so I wanted to receive them on a different address where it would be easier for me to manage them. I have tried using the Return-Path header but hotmail seems to ignore it and still send the bounces to the "from" address. I also noticed that the class sends "NOTIFY=NEVER ORCPT=rfc822" to "disable" dsn but hotmail also seems to ignore it.
The SMTP transaction printed by the php class looks something like this:
Resolving SMTP server domain "smtp.live.com"...
Connecting to host address "65.55.96.11" port 587...
Connected to SMTP server "smtp.live.com".
S 220 BLU0-SMTP333.blu0.hotmail.com Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Sat, 20 Oct 2012 06:51:46 -0700
C EHLO 192.168.1.1
S 250-BLU0-SMTP333.blu0.hotmail.com Hello [1.2.3.4]
S 250-TURN
S 250-SIZE 44242340
S 250-ETRN
S 250-PIPELINING
S 250-DSN
S 250-ENHANCEDSTATUSCODES
S 250-8bitmime
S 250-BINARYMIME
S 250-CHUNKING
S 250-VRFY
S 250-TLS
S 250-STARTTLS
S 250 OK
C STARTTLS
S 220 2.0.0 SMTP server ready
Starting TLS cryptograpic protocol
TLS started
C EHLO 192.168.1.1
S 250-BLU0-SMTP366.blu0.hotmail.com Hello [1.2.3.4]
S 250-TURN
S 250-SIZE 44242340
S 250-ETRN
S 250-PIPELINING
S 250-DSN
S 250-ENHANCEDSTATUSCODES
S 250-8bitmime
S 250-BINARYMIME
S 250-CHUNKING
S 250-VRFY
S 250-AUTH LOGIN PLAIN
S 250 OK
C AUTH LOGIN
S 334 DXdlcm3hfW36
C ZW1haWwxQGhvdG1haWwuY29t
S 334 UDCzd5dvdmQe
C MTIzNDU2
S 235 2.7.0 Authentication succeeded
C MAIL FROM:<[email protected]>
C RCPT TO:<[email protected]> NOTIFY=NEVER ORCPT=rfc822;email-that-bounces
C DATA
S 250 2.1.0 [email protected] OK
S 250 2.1.5 [email protected]
S 354 Start mail input; end with <CRLF>.<CRLF>
C From: [email protected]
To: [email protected]
Return-Path: <[email protected]>
Content-Type: multipart/alternative; boundary="fd9c131c7e7f727fd34567b8a131218a52114gha"
Subject: subject
Date: Sat, 20 Oct 2012 15:51:45 CEST
MIME-Version: 1.0
C --fd9c131c7e7f727fd34567b8a131218a52114gha
Content-Type: text/plain; charset="ISO-8859-1
Content-Transfer-Encoding: 7bit
email message
--fd9c131c7e7f727fd34567b8a131218a52114gha
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
email message
--aa9c111c7e7f727bf74367b8a131918a36314dba--
C
.
S 250 2.6.0 <[email protected]> Queued mail for delivery
C QUIT
S 221 2.0.0 BLU0-SMTP333.blu0.hotmail.com Service closing transmission channel
Disconnected.
This is how i send the email:
$smtp->SendMessage(
$from, array( $to ),
array(
"From: $from",
"To: $to",
"Return-Path: <[email protected]>",
'Content-Type: multipart/alternative; boundary="'.$boundary.'"',
"Subject: $subject",
"Date: ".strftime("%a, %d %b %Y %H:%M:%S %Z"),
"MIME-Version: 1.0"
), "$body");
If I log into hotmail and check the "sent" folder, the email sent doesn't contain the return path header.
Is there something wrong with the headers I send or hotmail just don't support return-path
The Return-Path is actually not part of the e-mail, it is part of the SMTP envelope. What this means is that you cannot add it as any other mail header.
Return-Path is instead derived from the SMTP transaction. More specifically, this is where the Return-Path is set: