2012-10-20 2 views
0

작은 이메일 목록 관리자에서 this php class을 사용하고 있습니다. 이메일을 보내려면 hotmail 이메일과 smtp.live.com을 사용하고 있습니다. 그것은 잘 작동하지만, 나는 그들을 관리하기가 더 쉬울 수있는 다른 주소에서 이메일을 받기를 원한다. Return-Path 헤더를 사용해 보았지만 hotmail은이를 무시하고 "보낸 사람"주소로 반송을 보냅니다. 나는 또한 클래스가 "NOTIFY = NEVER ORCPT = rfc822"를 보내 "dsn"을 "사용 안 함"으로 설정했음을 알았지 만 hotmail도 그것을 무시하는 것으로 보인다. 내가 핫메일에 로그인하고 "전송"체크하면Hotmail에서 반송 경로 헤더를 무시합니다.

$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"); 

: 이것은 내가 이메일을 보내는 방법입니다

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. 

:

PHP는 클래스에 의해 인쇄 된 SMTP 트랜잭션은 다음과 같이 보입니다 폴더에 전송 된 이메일에 반송 경로 헤더가 없습니다.

내가 보내거나 핫메일 그냥 귀환 경로가 실제로 전자 메일의 일부입니다 오는 길

답변

1

를 지원하지 않는 헤더에 문제가, 그것은 SMTP 봉투의 일부입니다 . 이것이 의미하는 바는 다른 메일 헤더로 추가 할 수 없다는 것입니다.

Return-Path는 SMTP 트랜잭션에서 파생됩니다. 보다 구체적으로,이 리턴 경로가 설정되어있는 곳이다 : 당신은 당신의 코드 라인의 끝으로 \r\n을 사용하지 않는 것을 내가 볼

MAIL FROM:<[email protected]> 
+0

MAIL FROM :에서 보낸 사람과 다른 전자 메일을 설정하려고 시도했지만 smtp에서 인증 한 전자 메일에 여전히 수신 거부가 발생합니다. –

+0

Hotmail보다 다른 보내는 SMTP 서버를 사용해 보셨습니까? 항상 로그인 한 사용자를 Return-Path (실제로는 현명한 정책)로 설정하는 것이 좋습니다. –

0

. 당신은 그것을 추가하고 재시험을 시도해야합니다. 그 문자의 부족으로 많은보고와 이상한 행동이보고됩니다.

Hotmail은 return-path를 지원합니다. 몇 번이나 헤더와 테스트 메일이 정크 메일 폴더에 저장되는 것을 잊어 버렸습니다. 메시지가 곧바로받은 편지함으로 이동했습니다.

+0

저는 \ r \ n을 사용하고 있습니다. 배열을 전달하는 중이고 smtp 클래스는 $ header_data. = $ headers [$ header]. \ n \ r을 추가합니다. "\ r \ n"; –

관련 문제