我正在使用Laravel 5.1,我想发送电子邮件(smtp)
这是我的.env
配置:
MAIL_DRIVER=smtp
MAIL_HOST=mail.mydomain.ir
MAIL_PORT=587
MAIL_USERNAME=account@mydomain.ir
MAIL_PASSWORD= ....
MAIL_ENCRYPTION=null
,这在config/mail.php
:
'from' => ['address' =>env('MAIL_USERNAME', 'account@mydomain.ir'), 'name' => 'ESET'],
以及发送简单测试电子邮件的测试功能:
public function getEm()
{
$input = [] ;
Mail::send('emails.simple', $input, function($message) {
$message->to('some@gmail.com', 'Learning')->subject('Contact view Our Contact Form');
});
return 'Your message has been sent';
}
当我在localhost(在WampServer中)测试这个项目时,我工作得很好并发送电子邮件确定!
但是当我想在服务器(在线)中使用它时,我将更改我的.env
配置,因为我的主机支持说的是这样的:
MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=587
MAIL_USERNAME=account@mydomain.ir
MAIL_PASSWORD=....
MAIL_ENCRYPTION=null
我看到这个错误:
StreamBuffer.php第275行中的ErrorException:
stream_set_blocking()期望参数1为资源,给定
为null在HandleExceptions的StreamBuffer.php第275行 - > handleError('2', 'stream_set_blocking()期望参数1是资源,null 给予”, '/home2/net45987/domains/esetn32.ir/public_html/la/user/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php', '275',array('host'=>'localhost','timeout'=> '30','options'=> array(),'streamContext'=>资源,'errno'=> null,'errstr'=> null))在StreamBuffer.php第275行的stream_set_blocking(null,'1') 在Swift_Transport_StreamBuffer-> _establishSocketConnection()中 StreamBuffer.php第62行 Swift_Transport_StreamBuffer-> initialize(array('protocol'=> null, 'host'=> 'localhost','port'=> '587','超时'=> '30','阻塞' => '1','tls'=> false,'type'=> '1','stream_context_options'=> array()))在AbstractSmtpTransport.php第113行中 Mailer.php第79行中的Swift_Transport_AbstractSmtpTransport-> start() 在Swift_Mailer->在Mailer.php中发送(对象(Swift_Message),array()) Mailer的第395行 - > sendSwiftMessage(对象(Swift_Message))in Mailer.php第181行在Mailer->发送('emails.simple',array(), 对象(Closure))在Facade.php第222行中 Facade :: __ callStatic('send',array('emails.simple',array(), 对象(Closure)))在CallbackController.php第114行中 Mail :: send('emails.simple',array(),object(Closure))in 在CallbackController-> getEm()
的CallbackController.php第114行
答案 0 :(得分:1)
你解决了这个问题已经很久了吗?我最近遇到了同样的问题。解决方法是:
$this->stream = @fsockopen($host, $this->params['port'], $errno, $errstr, $timeout)
我的英语不太好,抱歉。