use*_*270 7 php email post smtp laravel
每次我在Laravel应用程序上提交联系表单时,都会在标题中收到错误消息.我已按照本次讨论中的建议,但即使在php artisan cache:clear和之后它也没有效果php artisan config:cache.这是相关的代码:
.ENV
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=username@gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=ssl
Run Code Online (Sandbox Code Playgroud)
配置/ mail.php
<?php
return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
Run Code Online (Sandbox Code Playgroud)
我在文档中的印象是,除非没有提供其他地址,否则全局'from'不会触发,但在我的邮件控制器中,我指定提供给联系表单的地址为'from',某种冲突点?它似乎不是来自错误消息的详细信息.
由于联系表单不是一个独特的视图而是主页视图的底部,因此Controller函数位于PageController中
public function postContact(Request $request) {
$this->validate($request, [
'email' => 'required|email',
'subject' => 'required|min:3',
'message' => 'required|min:10'
]);
$data = array(
'email' => $request->email,
'subject' => $request->subject,
'mailbody' => $request->message
);
Mail::send('emails.contact', $data, function($message) use ($data) {
$message->from($data['email']);
$message->to('username@gmail.com');
$message->subject($data['subject']);
});
}
Run Code Online (Sandbox Code Playgroud)
我认为您应该将邮件发件人(MAIL_FROM_ADDRESS)定义为要用于发送电子邮件的gmail。
例如,如果您MAIL_USERNAME的地址.env为example@gmail.com,则应将您MAIL_FROM_ADDRESS(当然$mail->from())定义为example@gmail.com。
我认为gmail不允许您以其他用户(另一个地址)的身份发送电子邮件。
587端口类似问题
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=username@gmail.com
MAIL_PASSWORD=mypassword
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9734 次 |
| 最近记录: |