2014-09-27 2 views
2

SMTP 릴레이 엔진의 마지막 비트를 쓰는 중입니다. 기본적으로 사람들은이 SMTP 주소로 메일을 보내고, 파일로 파이프 처리하고, 분석 한 다음 머리글과 바닥 글을 본문에 추가합니다. 내 문제는 모든 경우에 메일을 변경하는 방식이 효과가 있을지 확신 할 수 없다는 것입니다. 기본적으로,이 경우이 : 1. 그냥 첫 번째 빈 행을 찾아이 헤더를 넣어 다음 바로 마지막에 바닥 글을 추가합니다전자 메일에 머리글과 바닥 글을 추가하는 가장 안전한 방법은 무엇입니까?

Return-path: <[email protected]> 
Envelope-to: system-filter 
Delivery-date: Thu, 25 Sep 2014 12:43:53 +0200 
Received: from localhost ([127.0.0.1]:XXXX helo=XXXX.XXXX.com) 
    by XXXX.XXXX.com with XXXX(XXXX-XXXX-XXXX-XXXX:XXXX) 
    (Exim XXXX) 
    (envelope-from <[email protected]>) 
    id XXXX-XXXX-67 
    for [email protected]; Thu, 25 Sep 2014 12:43:52 +0200 
Received: from XXXX.XXXX.XXXX.XXXX ([197.87.204.210]) by XXXX.XXXX.com 
(Horde Framework) with HTTP; Thu, 25 Sep 2014 10:43:50 +0000 
Date: Thu, 25 Sep 2014 10:43:50 +0000 
Message-ID: <[email protected]> 
From: [email protected] 
To: [email protected] 
Subject: This is the subject 
User-Agent: Internet Messaging Program (IMP) H5 (XXXX) 
Content-Type: text/plain; charset=UTF-8; format=flowed; DelSp=Yes 
MIME-Version: 1.0 
Content-Disposition: inline 
X-OutGoing-Spam-Status: No, score=-2.9 

And this is the message. 

아이디어 중 하나를하는 것이 었습니다. 2. PHP Mime Mail Parser을 사용하여 본문을 변경하십시오.

1의 문제점은 정상적인 레이아웃을 따르지 않는 다른 형식이있을 수 있다고 생각하는 것입니다. 2 문제는 메일 파서가 구문 분석 할 수있는 모든 것에 국한됩니다.

그래서 내가 지정한 것처럼 전자 메일을 릴레이하는 가장 안전한 방법은 무엇입니까?

답변

2

메시지 본문 앞에 뭔가를 추가하거나 추가하는 기능은 작동하지 않습니다. 메일은 여러 부분으로 (예 : 첨부 파일로) 또는 인코딩 (예 : base64) 할 수 있기 때문에 작동하지 않습니다. PHP Mime Mail Parser는 이러한 경우를 처리 할 수있는 것처럼 보이지만 수정 된 메시지를 저장할 방법이 없습니다.

나는 읽을 수있는 것이 아니라 메시지를 쓸 수있는 이메일 파싱 라이브러리를 사용하는 것이 좋습니다. 예를 들어, Python 표준 라이브러리에는 필요한 것을 수행 할 수있는 email 패키지가 있습니다. 그러나 메시지가 멀티 파트인지 확인하고 머리글과 바닥 글을 오른쪽 부분 (즉, 이미지 나 첨부 파일이 아닌 실제 내용)에 추가해야합니다. 또한 메시지가 일반 텍스트 또는 HTML인지 확인하고 머리글 및 바닥 글이 적절하게 형식화되어 있어야합니다.