0

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:<email19@hotmail.com>
C RCPT TO:<email-that-bounces@hotmail.com> NOTIFY=NEVER ORCPT=rfc822;email-that-bounces
C DATA
S 250 2.1.0 email1@hotmail.com....Sender OK
S 250 2.1.5 email-that-bounces@hotmail.com
S 354 Start mail input; end with <CRLF>.<CRLF>
C From: email1@hotmail.com
To: email-that-bounces@hotmail.com
Return-Path: <otheremail@myserver.com>
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 <BLU0-SMTP43555fdccc0ecf4@BLU0-SMTP333.blu0.hotmail.com> 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: <otheremail@myserver.com>",
        '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

James Harzs
  • 1,853
  • 5
  • 21
  • 30

2 Answers2

1

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:

MAIL FROM:<email19@hotmail.com>
Emil Vikström
  • 90,431
  • 16
  • 141
  • 175
  • i tried setting a different email than the sender on MAIL FROM: and I still get the bounces on the email that authenticated on smtp. – James Harzs Oct 20 '12 at 14:32
  • Have you tried using another sending SMTP server than Hotmail? It may very well be that they always set the logged-in user as the Return-Path (a sensible policy, actually). – Emil Vikström Oct 20 '12 at 14:57
0

I see that you are not using \r\n as end of line in your code. Your should try to add it and recheck. Lots of reports and strange behaviours are reported due to the lack of those characters

Hotmail do support return-path, a few times I have forgotten that header and the test mails ended up in the junk folder, and as soon as I added it, the messages went straight to the inbox

PatomaS
  • 1,603
  • 18
  • 25
  • I am using \r\n, I am just passing an array and the smtp class adds the \n\r with $header_data.=$headers[$header]."\r\n"; – James Harzs Oct 20 '12 at 15:27