2010-02-23 3 views
2

하나의 스크립트에서 작업하지만,하지 않습니다 자체 파일, 또는 다른 파일에 넣으면 작동하지 않습니다. 오류 메시지가없고 전자 메일이 전송되지 않습니다.PHP 메일 내가 잘 작동 및 메일 벌금을 보내는 PHP 파일 내에서 작은 PHP 메일러 스크립트가 다른

php ini set 명령이없고 포함 된 php 파일이 없습니다.

더 큰 PHP 스크립트에서 작동하지만 자체적으로 작동하지 않는 이유에 대한 아이디어가 있으십니까?

+0

어떤 오류 메시지가 표시됩니까? – meagar

+0

작동하지 않는 방법에 대한 세부 정보를 제공 할 수 있습니까? 오류 메시지가 있습니까? 그렇지 않다면 php.ini가 에러를 출력하도록 설정했는지 확인할 수 있습니까? – sidereal

+0

작동하지 않는다고 말하면 메일을 보내지 않거나 오류가 발생한다는 의미입니까? –

답변

1

코드에 문제가 없습니다. 필자는 $ recipient의 전자 메일 주소를 내 주소로 바꾸어 테스트했는데 제대로 작동했습니다 (Exchange 서버의 Outlook과 Hotmail 주소의 다른 테스트 모두 잘 작동하고받은 편지함에 도달했습니다).

  • 하지만 $의 mail_body의 새로운 라인 "\ n을"및 하지 있는지 확인 "\ 연구 \ n". 당신이 메시지 매개 변수에 대한 워드 프로세서에서 읽을 수 있듯이 :

각 행은 LF (\ n을)로 구분해야합니다. 줄은 (영문 70 자)보다 커야합니다.

  • 은> 확인 $ 이름과 $ 이메일이 <처럼 금지가 포함되지 문자를 않습니다 확인하고 새로운 라인 (\ R, \ n, 또는 \ r \ n). 마이클이 거기에서 새로운 라인을 지적하면 email injection 공격을 유발할 수 있습니다. 스팸 발송자가 귀하의 연락처 양식을 메일 플랫폼으로 사용하는 것을 원하지 않습니다!

당신은 mail() 고급 메일 링에 매우 까다 롭습니다 이후 개발을 쉽게 할 PHPMailer 같은 이메일 라이브러리를 사용하는 것이 좋습니다. 이러한 라이브러리의 대부분은 이미 이러한 공격과 표준을 포괄합니다 ...

+0

모든 것이 코드와 잘 맞지만 왜 그렇지는 않은지 알고 있습니다. 자체적으로 작동합니까? 오래 전에 작성한 원본 스크립트에서만 작동합니다. 위의 텍스트를 에 감싸고 새 파일로 저장하면 메일이 보내지지 않습니다. – CheeseConQueso

+0

두 버전에서 $ recipient의 주소가 동일합니까? 메일을 가로 채고있는 서버 쪽 스팸 필터가 아니라면 ... Reply-To, Return-Path, Message-ID 및 X-Mailer 헤더를 추가하여 도움이되는지 확인할 수 있습니다 (php.net 예제). – AlexV

+0

PHP 파일에 같은 작업 스크립트를 넣으려고했는데 보내지 않을 겁니다 ... – CheeseConQueso