我收到以下错误:
没有收件人的情况下无法发送邮件
这是在尝试使用swiftmailer发送电子邮件时。我的代码在localhost中工作,并且具有从发送方到接收方所需的所有参数,但是它会抛出错误,说明没有收件人就无法发送。
这是我的代码:
public function email()
{
Mail::send('emails.auth.mail', array('token'=>'SAMPLE'), function($message){
$message = Swift_Message::newInstance();
$email = $_POST['email']; $name = $_POST['name']; $subject = $_POST['subject']; $msg = $_POST['msg'];
$message = Swift_Message::newInstance()
->setFrom(array($email => $name))
->setTo(array('name@gmail.com' => 'Name'))
->setSubject($subject)
->setBody($msg);
$transport = Swift_MailTransport::newInstance('smtp.gmail.com', 465, 'ssl');
//$transport->setLocalDomain('[127.0.0.1]');
$mailer = Swift_Mailer::newInstance($transport);
//Send the message
$result = $mailer->send($message);
if($result){
var_dump('worked');
}else{
var_dump('Did not send mail');
}
}
}
答案 0 :(得分:7)
您可以在Mail::send()
实施中添加SMTP信息的情况下执行此操作。
假设您还没有,请转到app/config/mail.php并编辑以下内容以满足您的需求:
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
'username' => 'your_username',
'password' => 'your_password',
然后你的代码应该简单如下:
public function email()
{
Mail::send('emails.auth.mail', array('token'=>'SAMPLE'), function($message)
{
$message->from( Input::get('email'), Input::get('name') );
$message->to('name@gmail.com', 'Name')->subject( Input::get('subject') );
});
}
所以,希望问题是配置问题之一。您是否有其他环境设置可能会超出您服务器中app/config/mail.php
配置设置无法正常工作的设置?
答案 1 :(得分:1)
请确保您已正确配置所有必要的配置
/app/config/mail.php
。确保所有配置都适用于电子邮件无法正常工作的环境。
答案 2 :(得分:1)
如果您想将Gmail帐户用作SMTP服务器,请在app / config / mail.php中设置以下内容:
'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
'username' => 'your-email@gmail.com',
'password' => 'your-password',
切换到在线服务器时,您希望保护此文件或切换提供程序,以免暴露您的Gmail凭据。端口587用于mailgun而不是gmail。