2016-12-08 9 views
1

나는 Yii 2로 이메일을 보내려고했습니다. 모든 것이 잘 작동하지만 이상한 점이 하나 있습니다 - 나는 항상 "wrong"이메일 주소 (setFrom()으로 설정)를 가지고 있습니다. Yii 2 mailer - wrong "from"필드

코드입니다 :이 방법을 보내는 이메일을 내 양식에서 오는 속성

public function afterSave($insert, $changedAttributes){ 
    $this->send_email($this->attributes); 
} 

해당 데이터가 정확한지 확인하십시오. 다음 단계에서 내 이메일을 보내려고 :

public function send_email($data) 
{ 
    return Yii::$app->mailer->compose('contactEmail', ['data'=>$data]) 
      ->setFrom($data['email']) 
      ->setTo('[email protected]') 
      ->setSubject($data['subject']) 
      ->setTextBody($data['message']) 
      ->send(); 
} 

내 주소로 항상 이메일을 보낼 : [email protected]. 그리고 나는 항상 메시지를 받았지만 주소는 이 아닌 [email protected] 주소에서 전송됩니다. 나는 var_dump 그것을 확인하기 위해 시도하고 내가 여기에 정확한 데이터를 가지고 :

내 모든 형태의 입력을 작성하고 내가 보낸 사람으로 var_dump 반환 [email protected][email protected]을 설정하지만, 수신 된 이메일을 확인 때 예를 들어
public function send_email($data) 
{ 
    var_dump($data['email']); 
    exit(); 

    return Yii::$app->mailer->compose('contactEmail', ['data'=>$data]) 
      ->setFrom($data['email']) 
      ->setTo('[email protected]') 
      ->setSubject($data['subject']) 
      ->setTextBody($data['message']) 
      ->send(); 
} 

항상 [email protected]에서 내가 ->setFrom('[email protected]')을 사용할 때와 같은 상황 - Gmail에 여전히 메시지가 [email protected]에서 있습니다. 나는 왜 형식으로 입력 된 전자 메일에서 메시지를 얻을 수 없는지 이해할 수 없습니다. 여기서 내가 뭘 잘못 했니?

답변

1

SMTP 서버로 사용하고있는 것을 모른 채 질문에 대답하기가 어렵습니다.

당신이 당신의 SMTP 서버로 Gmail을 (smtp.gmail.com)를 사용하는 것을 가정 : 문제는 Gmail 서버 자체에 구성된 설정에있다. 보낸 사람 필드를 전자 메일 주소 나 별칭 중 하나 이외의 값으로 지정할 수 없습니다. 따라서 [email protected]으로 인증하면 [email protected] 또는 별칭으로 구성된 계정으로 이메일을 보낼 수 있습니다.

앨리어싱에 대한 자세한 내용은 https://support.google.com/mail/answer/22370?hl=en을 참조하십시오.

당신이 당신의 SMTP 서버로 Gmail을 (smtp.gmail.com) 사용하지 않는 경우 :

당신의 SMTP 구성 (암호를 제외하는 것을 잊지 마세요)주십시오?

'mailer' => [ 
      'class' => 'yii\swiftmailer\Mailer', 
      'transport' => [ 
       'class' => 'Swift_SmtpTransport', 
      --->......... 
      ],