programing

Wordpress에서 메일을 활성화하려면 어떻게 해야 합니까?

showcode 2023. 3. 16. 22:01
반응형

Wordpress에서 메일을 활성화하려면 어떻게 해야 합니까?

Windows 8 데스크탑에서 Apache 2.2.25와 PHP 5.3.28을 사용하고 있습니다.워드프레스 패스워드를 회복할 때 다음 오류가 발생한 적이 있습니다.

이메일을 보낼 수 없습니다.생각할 수 있는 이유:호스트가 mail() 함수를 디세블로 했을 가능성이 있습니다.

mail() 함수를 활성화하려면 어떻게 해야 하는지 검색해 보니 메일 서버를 서버로 설정해야 합니다.hMailServer를 다운받았는데 동작하지 않았습니다...메일() 기능을 활성화하려면 어떻게 해야 하나요?어떤 메일 서버를 다운로드해야 합니까?

여기에 게재한 바와 같이:

이것은 매우 귀찮은 에러 메시지입니다.많은 경우, 실제 에러는 표시되지 않습니다(코드의 다른 부분에서는 무음인 경우가 많습니다).

이 에러는, 다음의 경우에 표시됩니다.wp_mail()함수는 false를 반환하며, 이는 다음 경우에 발생할 수 있습니다.phpmailer->Send()false를 반환하거나 예외를 발생시킵니다.


PHP의 경고를 표시하는 방법mail()기능.

이러한 파일은 기본적으로 무음 처리되며 WordPress에서는 캡처되지 않습니다.표시하기 위해서, 간단하게,@에서의 징후.@mail(...wp-includes/class-phpmailer.php에서mailPassthru()기능:

if (ini_get('safe_mode') || !($this->UseSendmailOptions)) {
    $rt = @mail($to, $this->encodeHeader($this->secureHeader($subject)), $body, $header);
} else {
    $rt = @mail($to, $this->encodeHeader($this->secureHeader($subject)), $body, $header, $params);
}


기타 생각할 수 있는 원인을 찾는 방법:

  1. 아래쪽에 한 줄 추가wp_mail()/wp-includes/pluggable.php:

    // Send!
    try {
        return $phpmailer->Send();
    } catch ( phpmailerException $e ) {
        //------------- This next line is the one to add -------------------
        if (WP_DEBUG) echo '<pre>' . esc_html(print_r($e, TRUE)) . '</pre>';
        return false;
    }
    
  2. 예외가 발생한 위치에 대한 자세한 내용이 덤프됩니다.안타깝게도 "메일 기능을 인스턴스화할 수 없습니다"라는 도움이 되지 않는 예외 메시지가 포함될 수 있습니다.네, WordPress 고마워요. 정말 도움이 되네요.

  3. 예외를 보면 에러의 회선 번호를 알 수 있습니다.또한 코드를 통해 에러의 회선 번호를 추적하여 실제 원인을 찾을 수 있습니다.

행운을 빌어요.WordPress가 향후 이메일 오류 처리를 개선하기를 바랍니다.

저는 이 같은 문제를 겪었고 워드프레스 제안에서 해결할 수 있는 것은 아무것도 없었습니다.

그 후 메일 기능을 무효로 한 것은 PHP 인스톨 자체인지 조사했습니다만, 어느 쪽도 동작하지 않았습니다.모든 것이 올바르게 설정되어 있는 것처럼 보였다.

서버를 Cent로 업그레이드하자 이 모든 문제가 시작되었습니다.OS 7은 SELinux(Security Enhanced Linux)를 사용하고 있으며, SELinux를 사용하여 지난 몇 주 동안 알게 된 사실은 어떤 것이 작동하지 않으면 모든 것이 작동해야 한다는 것입니다.즉, SELinux가 뒤에서 조용히 비밀리에 당신을 차단하고 있는 것입니다.

그리고 비올라.

SELinux 를 사용하는 OS 를 실행하고 있는 경우는, root 로서 다음의 커맨드를 실행합니다.

setsebool -P httpd_can_sendmail=1

기본적으로 웹 서버가 전자 메일을 보내지 못하도록 하는 보안 설정이 있습니다.이 스위치를 켜고 SELinux에게 웹 서버가 이메일을 보내도 괜찮다고 말하면 모든 것이 갑자기 작동합니다.

스크립트(Wordpress)를 통한 메일 발송을 위한 등록된 이메일 ID 관리(Manage Registered Email-Ids For Scripts)라고 부릅니다.

  1. Cpanel에 로그인합니다.
  2. [ Email Section ]> [ Registered Email IDs ]을 클릭합니다.
  3. (wordpress@yourdomain.com) 또는 워드프레스가 호스트된 위치를 추가합니다.즉 (wordpress@press).yourdomain.com)를 참조해 송신해 주세요.호스팅 프로바이더에 따라서는, 15분에서 1시간 정도 기다려 주세요.그 후 동작합니다.

언급URL : https://stackoverflow.com/questions/24841038/how-can-i-enable-mail-in-wordpress

반응형