2014-12-05 1 views
1

에 구성 SMTP 후 prameters.yml에 :Symfony2 - 이메일 경고를 보내 내가 이메일을 보내려고하지만 이러한 유형의 경고가 해당 파일이나 디렉토리

ContextErrorException : 경고 : MKDIR을()에서 mkdir()를 : /home/crashend/domains/tombax.com/public_html/gbuy/vendor/swiftmailer/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php 줄에 해당 파일이나 디렉토리가 없습니다. 273

로컬 호스트에서 모든 것이 작동합니다. 문제는 서버로 프로젝트를 전송 한 후에 나타납니다. 이메일이 전송되지 않습니다. 이메일을 보낼 수있는 컨트롤러에서

코드 : parameters.yml에서

$message = \Swift_Message::newInstance() 
      ->setSubject('Hello Email') 
      ->setFrom(array('[email protected]' => 'Tom')) 
      ->setTo(array('[email protected]' => 'Jan')) 
      ->setBody('abcd') 
    ; 
    $this->get('mailer')->send($message); 

코드 :

mailer_transport: smtp 
mailer_host: smtp.myserver.com 
mailer_user: [email protected] 
mailer_password: pass 

이 도와주세요.

답변

1

:

if (is_writable($tmpDir = sys_get_temp_dir())) {  
    $preferences->setTempDir($tmpDir)->setCacheType('disk'); 
} 

/vendor/swiftmailer/swiftmailer/lib/preferences.php 모두에서 잘 작동합니다. 문제는 디렉토리에 대한 권한에 있다고 생각합니다. Swiftmailer는/tmp 디렉토리를 참조하는 sys_get_temp_dir() 함수를 사용합니다.

+0

우물/tmp는 쓰기 가능해야하며 그렇지 않으면 파손이 많을 것입니다. – Doon

0

당신은 아마 당신의 스풀 경로가 잘못 설정하여 config.yml에서

의 Look합니다 (SwiftMailer 스풀 디렉토리가 올바른지, 그리고이 있는지 확인하십시오 (이 dev에 환경보다, 서버에서 다른) 및 사용자가 서버에 대한 사용 권한을 가지고 있음). 주석이 후

+0

{type : memory}에 스풀을 설정했습니다. – tbakula92

+0

존재하지 않는 디렉토리에 캐시 키를 작성하려고 시도하는 중 오류가 발생했습니다. 그래서 mem을 사용하지 않는 것 같습니다 – Doon

+0

파일을 바꾸고 경로를 설정하면 전자 메일이 파일에 저장되고 명령 줄에서 전자 메일을 보낼 때 터미널에 같은 경고가 표시됩니다. – tbakula92