태그 보관물: email

email

마 젠토 2 : 프로그래밍 방식으로 이메일 보내기 SES, Mandrill

Magento 2는 Amazon SES, Mandrill 등과 같은 타사 트랜잭션 이메일 전송 시스템과 기본적으로 통합되어 mail있습니까? 또는 기본 제공 이메일 기능이 여전히 PHP 기능을 기반으로 합니까? 아니면 이메일이 세 번째로 전송됩니까?

대답이 mail이면 SMTPPro for Magento 2와 같은 타사 확장 프로그램이 있습니까? 개발자가 표준 전자 메일 시스템을 교체 할 수 있습니까?



답변

이메일을 보내는 것을 발견 할 때까지 ‘이메일’, ‘메시지’등과 같은 문자열을 Magento 2 코드베이스에서 검색하기 시작했습니다. 에서 sendPaymentFailedEmail ()을 우연히 발견했습니다 vendor/magento/module-checkout/Helper/Data.php. 이것은 많은 변수를 설정하지만 결국 ‘transportBuilder’를 통해 생성되는 전송 객체에 연결합니다. 이 transportBuilder는의 인스턴스입니다 \Magento\Framework\Mail\Template\TransportBuilder.

해당 파일 $transport에는의 인스턴스 인 변수가 존재합니다 \Magento\Framework\Mail\TransportInterface. 인터페이스가 있기 때문에이라는 일반 클래스도 있습니다 \Magento\Framework\Mail\Transport. 파일을 열면이 파일 vendor/magento/framework/Mail/Transport.php이 Zend_Mail_Transport_Sendmail로 확장됩니다.

전송 클래스 확장 \ Zend_Mail_Transport_Sendmail은 \ Magento \ Framework \ Mail \ TransportInterface를 구현합니다.

이것은 당신이 찾고있는 것입니다. DI를 사용하면이 전송을 Mandrill 또는 Amazon SES와 같은 Zend_Mail 대신 다른 이메일 프레임 워크로 대체 할 수 있습니다.

send()메소드 가 포함되어 있기 때문에 메소드 를 포함해야합니다 sendMessage().

public function sendMessage()
{
    try {
        parent::send($this->_message);
    } catch (\Exception $e) {
        throw new \Magento\Framework\Exception\MailException(new \Magento\Framework\Phrase($e->getMessage()), $e);
    }
}


답변

Magento 2 TransportBuilder는 이메일 템플릿을 사용하여 이메일 본문을 작성합니다. 일반 텍스트를 보내는 가장 간단한 방법-사용 Zend_Mail(Magento 2 자체에서 사용) :

$email = new \Zend_Mail();
$email->setSubject("Feedback email");
$email->setBodyText($body);
$email->setFrom($from, $nameFrom);
$email->addTo($to, $nameTo);
$email->send();


답변

mail()구식이며 3을 지원하지 않는 PHP에 대한 가정이 종종 있습니다. 파티 서비스.
모든 좋은 3 번째로, 실제로 잘못되었습니다. 파티 서비스는 SMTP 인터페이스를 지원하며 mail(), 역시 지원합니다.

Amazon SES는 SMTP를 지원합니다.

SMTP를 통한 전송 mail()/programming//a/14457410/716029에 설명되어 있습니다.


답변

Magento 2 사용자 지정 전자 메일 보내기에 \ Magento \ Framework \ Mail \ Template \ TransportBuilder 클래스를 사용합니다.

트랜잭션 메일 템플리트를 정의하기 위해 간단한 모듈을 작성하고 email_tempaltes.xml 파일을 설정해야합니다.

Adminhtml 또는 Frontend Scope 영역에서 메일을 보낼 수 있습니다.

모듈을 사용하여 Magento 2에서 사용자 지정 메일을 보내기위한 단계별 가이드 링크를 공유했습니다.

Magento 2 모듈에서 사용자 지정 메일 보내기


답변