2016-12-29 99 views
0

我正在使用mailgun帮助我在laravel上发送邮件。Mailgun错误'传递给API的参数无效

这里邮件代码:

$data = array('name' => ucfirst($customer_name),'email' => $email, 'ticket_id' => $ticket_id); 
$mail_data = array('name' => ucfirst($customer_name),'email' => $email, 'mobile' => $contact, 'address' => $address, 'delivery_type' => ucfirst(Input::get('delivery_type')), 'pickup_type' => ucfirst(Input::get('pickup_type')), 'pickup_date' => $pickup_date, 'pickup_time' => $pickup_time, 'brand' => $brand_name, 'ticket_id' => $ticket_id, 'city' => $region_name); 

Mailgun::send('emails.ticket', $mail_data , function($message) use($data) 
{ 
    $message->to($data['email'], $data['name']) 
      ->bcc(array('[email protected], [email protected], [email protected], [email protected]')) 
      ->subject('Service Request! - '.$data['ticket_id']); 
      }); 

我查了日志想通了:

[2016-12-29 05:58:58] production.ERROR: exception 'Mailgun\Connection\Exceptions\MissingRequiredParameters' with message 'The parameters passed to the API were invalid. Check your inputs! Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings.' in /var/www/html/mysite/vendor/mailgun/mailgun-php/src/Mailgun/Connection/RestClient.php:169 
Stack trace: 
#0 /var/www/html/mysite/vendor/mailgun/mailgun-php/src/Mailgun/Connection/RestClient.php(88): Mailgun\Connection\RestClient->responseHandler(Object(GuzzleHttp\Message\Response)) 
#1 /var/www/html/mysite/vendor/mailgun/mailgun-php/src/Mailgun/Mailgun.php(106): Mailgun\Connection\RestClient->post('sandbox798d350d...', Array, Array) 
#2 /var/www/html/mysite/vendor/mailgun/mailgun-php/src/Mailgun/Mailgun.php(53): Mailgun\Mailgun->post('sandbox798d350d...', Array, Array) 
#3 /var/www/html/mysite/vendor/bogardo/mailgun/src/Bogardo/Mailgun/Mailgun.php(104): Mailgun\Mailgun->sendMessage('sandbox798d350d...', Array, Array) 
#4 /var/www/html/mysite/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(222): Bogardo\Mailgun\Mailgun->send('emails.ticket', Array, Object(Closure)) 
#5 /var/www/html/mysite/app/Http/Controllers/AppController.php(384): Illuminate\Support\Facades\Facade::__callStatic('send', Array) 
#6 /var/www/html/mysite/app/Http/Controllers/AppController.php(384): Bogardo\Mailgun\Facades\Mailgun::send('emails.ticket', Array, Object(Closure)) 
#7 [internal function]: App\Http\Controllers\AppController->pickup_request() 
#8 /var/www/html/mysite/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(256): call_user_func_array(Array, Array) 
#9 /var/www/html/mysite/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(164): Illuminate\Routing\Controller->callAction('pickup_request', Array) 

我无法弄清楚问题出在哪里?是语法错误吗?或者可能是错的?

它过去正常工作,现在它已停止。

谢谢!

+0

什么'Mailgun'?那是laravel的Mail吗? –

+0

@LionelChan:http://www.mailgun.com/ –

+0

不,我知道什么是mailgun。这是一个邮件服务。我的意思是你怎么通过'Mailgun :: send'发送邮件,而不是'Mail :: send'? –

回答

1

的这个错误告诉一切:)

传递给API的参数无效。检查你的输入!沙盒子域仅用于测试目的。请在帐户设置中添加您自己的域名或将地址添加到授权的收件人。

在Mailgun中,沙箱子域仅用于测试。如果您需要真正发送电子邮件,则需要将您的域名添加到您的mailgun acc中,或将授权收件人添加到您的mailgun帐户设置中。

因此,在这种情况下,你要么需要添加mydomain.com到您的mailgun白名单域名,或添加[email protected][email protected][email protected][email protected]到白名单中的电子邮件。

相关的文档:https://help.mailgun.com/hc/en-us/articles/217531258-Authorized-Recipients

相关Q &答:https://laracasts.com/discuss/channels/laravel/sending-emails-with-mailgun