使用SMTP zend 2发送电子邮件

时间:2016-11-25 06:17:44

标签: php email zend-framework zend-framework2 smtp

我在zf2

中尝试使用SMTP发送了很多邮件
use Zend\Mail\Message;
use Zend\Mail\Transport\Smtp as SmtpTransport;
use Zend\Mail\Transport\SmtpOptions;
$message = new Message();
$message->addTo('virag.shah@openxcell.info')
                ->addFrom('ralph.schindler@zend.com')
                ->setSubject('Greetings and Salutations!')
                ->setBody("Sorry, I'm going to be late today!");

    // Setup SMTP transport using LOGIN authentication
    $transport = new SmtpTransport();
    $options   = new SmtpOptions(array(
        'name'              => 'gmail',
        'host'              => 'smtp.gmail.com',
        'port'              => 587,
        'connection_class'  => 'login',
        'connection_config' => array(
            'username' => 'Gmail email id',
            'password' => '**********',
            'ssl'      => 'tls',
        ),
    ));
    $transport->setOptions($options);
    //echo '<pre>'; print_r($transport); die;
    $transport->send($message);

这个代码我试过但它根本不工作。 我发现每个地方都一样

我收到了这个错误 enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用如下的smtp:

$message = new \Zend\Mail\Message();
$message->setBody('Body');
$message->setFrom('mail@domain.com');
$message->addTo('anayone@domain.com');
$message->setSubject('Subject');

$smtpOptions = new \Zend\Mail\Transport\SmtpOptions();  
$smtpOptions->setHost('smtp.gmail.com')
            ->setConnectionClass('login')
            ->setName('smtp.gmail.com')
            ->setConnectionConfig(array(
                'username' => 'Your Gmail Address',
                'password' => 'Your Password',
                'ssl' => 'tls',
            ));

$transport = new \Zend\Mail\Transport\Smtp($smtpOptions);
$transport->send($message);

答案 1 :(得分:0)

这个适用于我(使用Gmail帐户)

use Zend\Mail\Transport\Smtp as SmtpTransport;
use Zend\Mail\Transport\SmtpOptions;
use Zend\Mime\Message as MimeMessage;
use Zend\Mime\Part as MimePart;
use Zend\Mail\Message;

// Build transport
$transport = new SmtpTransport;
$options= new SmtpOptions([
        'name'              => 'smtp.gmail.com', //I guess here is your problem
        'host'              => 'smtp.gmail.com',
        'connection_class'  => 'login',
        'port'              => 587,
        'connection_config' => [
            'username' => 'your@gmail.com',
            'password' => 'your-pass',
            'ssl'      => 'tls',
        ]
    ]);
$transport->setOptions($options);

// Create HTML message 
$html       = new MimePart('<h1>Mail body!</h1><br/> <p>blah</p>');
$html->type = "text/html";
$body       = new MimeMessage();
$body->addPart($html);

$message = new Message();
$message->setBody($body);
$message->setFrom('from-email@gmail.com');
$message->addTo('to-email@gmail.com');
$message->setSubject('Mail subjest');

// Send message
$this->transport->send($message);