2008-09-02 2 views
6

여기에 올바른 용어를 사용하고 있는지 잘 모르겠습니다. 용서하십시오.MX 레코드가없는 경우 PHP mail() 함수가 작동합니까?

PHP mail() 함수를 사용하여 전자 메일을 보내는 연락처 양식이있는 사이트를 만들었습니다. 충분히 간단합니다. 그러나 라이브 사이트는 실제로 전자 메일을 보내지 않지만 테스트 사이트는 전자 메일을 보냅니다. 내 코드가 아니야.

공유 호스트이고 완벽하게 작동하는 동일한 기능을 가진 다른 사이트가 있으므로 서버가 아닙니다.

두 가지의 유일한 차이점은 작동하지 않는 사이트는 우리를 가리키는 이름 서버를 가지고 있으므로 MX 레코드가 절대로 우리 서버에 닿지 않는다는 것입니다.

제 질문은 우리 서버가 가리키는 MX 레코드가없는 경우 mail() 함수가 작동하지 않는다는 것을 확인하십시오. 감사합니다

답변

2

안녕 얘들 아, 답변 주셔서 감사합니다, 정말 고맙습니다.

몇 달 동안 문제를 무시한 후에 다시 제기되었지만 문제에 대한 답변을 찾았습니다.

첫째로 제안 된 답변에 따라 PHP와 mail() 함수가 예상대로 작동하고 있습니다. 우편물이 보내질거야.

문제는 전자 메일을 보낼 때 mydomain.com에서 *@mydomain.com으로 전자 메일 자체가 동일한 서버에서 호스팅되므로 전자 메일이 대신 전송되므로 MX 레코드를 무시합니다.

확인 좀 더 복잡 하긴하지만 일반적인 지스트입니다.

편집 : 더 좋은 버전의 sendmail and MX records when mail server is not on web host을 찾았습니다.

0

네, 당신은 '보낸 사람'필드에 원하는 것을 넣을 수 있으며 여전히 작동 할 것입니다.

3

예. 그것은 잘 작동합니다. Google Apps에 설정된 MX 레코드와 함께 mail() 함수를 사용하는 PHP 스크립트가 있습니다.

두 개의 스크립트가 다른 호스트에 있으면 (게시물에서 약간 분명하지 않음) 호스트가 일부 맞춤 헤더를 차단하지 않는지 확인하십시오. 내 스크립트를 만들 때이 문제가 있었지만 From 헤더를 제외하고 모두 제거하면 문제가 해결되었습니다.

2

일부 호스트 (Godaddy가 최악)는 sendmail과 mail()의 사용을 차단합니다.

일반적으로 smtp를 사용하여 PHP 응용 프로그램에서 전자 메일을 보내고 PHPMailer은 매우 쉽습니다. 많은 응용 프로그램이 PHPMailer의 이전 버전을 사용하고 있으며 때로는 업데이트하여 도움을받을 수 있습니다. 또한 짧은 스크립트에도 빠르게 추가 할 수 있습니다.

1

mail() 함수는 스크립트를 호스팅하는 서버에서 메일을 전송합니다. 많은 공유 호스팅 공급자가 별도의 메일 서버를 호스팅하고 mail() 함수가 어떤 종류의 인증도 지원하지 않기 때문에 많은 공유 호스팅 공급자가이를 차단합니다.

1

사이트에서 SPF를 사용하는 경우 보내는 사이트를 SPF 레코드에 포함해야합니다. 자세한 내용은 here을 참조하십시오.

관련 문제