2014-11-09 4 views
1

PHPMailer (SMTP를 통해)를 사용하여 웹 사이트를 통해 이메일을 발송합니다. 나는 Windows server를 Hmailserver를 사용하는 메일 서버로 사용하고 있습니다. Mailgun을 사용하여 이메일을 릴레이합니다.Windows에서 PHP를 사용하여 릴레이를 통해 메일 보내기

  • 내가 설정을 내 mailgun 설정을 확인 :

    상황은 내가 했어요.

  • 릴레이가 작동하지 않고 서버 을 통해 전자 메일을 보내고 받았음을 테스트했습니다 (정상적으로 작동 함).

나의 딜레마는 : 하나의 단계에서

  • 나는 같은 인증 또는 호스트 이름으로 릴레이 정보를 명시해야 할 것입니다. 지금까지, 나는이를 선언 할 수있는 두 장소를 참조 - 아래 참조 :

1) PHPMailer 스크립트를 통해 지정

$mail->IsSMTP(); 
$mail->host = "smtp.mailgun.org"; 
$mail->Username = "username"; 
$mail->Password = "password"; 

2) 서버 (hmailserver 관리자의 지정) :

http://puu.sh/cJLpk/c3d548981c.png

모든 이메일을 중계하려면 어떻게해야합니까?

답변

2

로컬 메일 서버 (hmailserver)를 릴레이로 사용하는 것이 더 빠릅니다 (적어도 클라이언트 스크립트의 경우). 훨씬 더 안정적입니다. 스크린 샷과 마찬가지로 메일 건을 가리 키도록 구성되어야합니다. Mailgun은 릴레이를 인증하는 데 사용할 수있는 자격 증명을 제공해야합니다.

당신이 PHPMailer으로 보낼 때 다음과 같이 로컬 호스트를 가리 키도록 구성해야합니다

$mail->IsSMTP(); 
$mail->Host = 'localhost'; 
$mail->Username = "username"; 
$mail->Password = "password"; 

(당신은 당신의 로컬 서버에 대한 사용자 이름과 암호가 필요하지 않을 수 있습니다). 이상하게 들릴지 모르지만 localhost에 SMTP를 사용하는 것은 로컬 sendmail 바이너리를 호출하는 것보다 빠르거나 (PHP의 mail() 함수를 사용하는 것보다 빠름)

Host 대신 원래 코드에 host이 있습니다. PHP는 속성 이름의 대소 문자를 구별합니다. 따라서 실제 코드라면 PHP가 실패 할 수 있습니다.

그게 전부 일 것입니다.

다른 문제는 hmailserver가 mailgun을 통과하지 않아도되는 메시지를 보내는 경우입니다.이 경우에는 hmailserver config에 추가로 도달해야합니다.

+0

감사합니다. 필요한 것이 모두 있어야합니다! – user3495256