2009-12-10 6 views
10

간단한 질문 : 메일을 대량으로 보내는 데 어느 성능이 좋은가요?PHP : mail() vs SendMail

메일() 기능 또는 센드 인기있는 PHP 목록 관리자 패키지에서 사용하는 하나의

?

답변

10

글쎄, mail() 함수는 보내는 전자 메일 각각에 대해 SMTP 소켓을 열고 닫음으로써 대량으로 보내는 전자 메일에는 적합하지 않습니다. 이는 효율적이지 않습니다. PEAR::Mail을 보면 3 개의 백엔드 (mail, sendmail 및 일반 SMTP)를 사용할 수 있습니다. 가치있는 일이라면 개인적으로 SMTP를 선호했습니다. Linux와 Windows 모두에서 지원하기 쉽기 때문입니다.

대기열을 사용하여 백그라운드에서 메일을 보내려면 PEAR::Mail_Queue이 해결책이 될 수 있습니다.

7

sendmail은 MTA (Mail Transfer Agent)입니다. UNIX 및 Linux 기반 시스템에서 PHP의 mail() 함수는 전자 메일을 sendmail (또는 호환되는 MTA)을 통해 단순히 릴레이합니다. 대량 전자 메일을 보내려는 경우 SMTP 서버에 직접 연결하는 방법을 고려할 수 있습니다. Zend Framework는 SMTP transport을 제공합니다.

+0

특히 유닉스와 리눅스에서 메일을 자세히 보내 주셔서 감사합니다. Windows는 어떻게 처리합니까? – Newb

3

직접 SMTP 메일 서버를 실행하는 경우 SPFdomain keys이 올바르게 설정되어 있는지 확인하십시오. 그렇지 않으면 메일이 대부분의 큰 도메인 (예 : Gmail, Gmail 등)의 정크 메일 상자에 저장됩니다.

바운스 처리 및 강력한 수신 거부 기능도 잊지 마십시오. 이메일을 보내지 않으면 효과가 떨어지고 IP는 blacklisted이됩니다.

물론 open relays은 허용되지 않습니다. 숙제를하고주의를 기울여 스패머가 어려움을 겪었습니다.