Commit 9f49efcd authored by hangjun83's avatar hangjun83

openapi 震坤行邮件

parent e5372fe3
...@@ -54,6 +54,8 @@ class ZhenkhJob extends Job ...@@ -54,6 +54,8 @@ class ZhenkhJob extends Job
case 'hMUpdateOrdersList' : case 'hMUpdateOrdersList' :
$service->hMUpdateOrdersList(); $service->hMUpdateOrdersList();
break; break;
case 'sendMail' :
$service->sendMail();
default: default:
} }
} }
......
<?php
namespace App\Mailer;
use Illuminate\Support\Facades\Mail;
class MailService{
private $type;
public function setFromType($type)
{
$this->type = strtoupper($type);
return $this;
}
public function initSendService()
{
if(!$this->type){
throw new \Exception('send type not exist.');
}
$this->registerProvider($this->getMailAccountConfig($this->type));
}
public function getMailAccountConfig($type)
{
$username = env("MAIL_{$type}_USERNAME");
$password = env("MAIL_{$type}_PASSWORD");
$address = env("MAIL_{$type}_FROM_ADDRESS");
$fromName = env("MAIL_{$type}_FROM_NAME");
$config = config('mail');
$config['username'] = $username;
$config['password'] = $password;
$config['from']['address'] = $address;
$config['from']['name'] = $fromName;
return $config;
}
public function registerProvider($config)
{
config(['mail' => $config]);
app()->register(\Illuminate\Mail\MailServiceProvider::class);
}
public function send($type, $toUser, $message)
{
$this->setFromType($type)->initSendService();
Mail::to($toUser)->send(new MailTempl([
'message' => $message
]));
}
}
\ No newline at end of file
<?php
namespace App\Mailer;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class MailTempl extends Mailable
{
use Queueable, SerializesModels;
private $data;
public function __construct($data = [])
{
$this->data = $data;
}
public function build()
{
return $this->markdown('emails.mail',$this->data);
}
}
...@@ -2,12 +2,15 @@ ...@@ -2,12 +2,15 @@
namespace App\Services; namespace App\Services;
use App\Mailer\MailService;
use App\Mailer\MailTempl;
use App\Repositories\Contracts\ThirdApiPlatformRepository; use App\Repositories\Contracts\ThirdApiPlatformRepository;
use App\Services\Kafka\KafkaService; use App\Services\Kafka\KafkaService;
use App\Services\ThirdPlatform\Api\ZhenkhApiService; use App\Services\ThirdPlatform\Api\ZhenkhApiService;
use App\Support\Facades\SimpleKafka; use App\Support\Facades\SimpleKafka;
use App\Support\Facades\SimpleLogs; use App\Support\Facades\SimpleLogs;
use App\Support\Traits\Helpers; use App\Support\Traits\Helpers;
use Illuminate\Support\Facades\Mail;
class ZhenKhService class ZhenKhService
{ {
...@@ -474,6 +477,10 @@ class ZhenKhService ...@@ -474,6 +477,10 @@ class ZhenKhService
if(!isset($result['reset']) || $result['reset'] != true){ if(!isset($result['reset']) || $result['reset'] != true){
break; break;
} }
if(!$result){
//发送邮件
}
} }
} }
return false; return false;
...@@ -515,4 +522,15 @@ class ZhenKhService ...@@ -515,4 +522,15 @@ class ZhenKhService
} }
} }
public function sendMail()
{
$mailService = app(MailService::class);
try{
$mailService->send('zkh','hangjun83@126.com','测试邮件');
}catch(\Throwable $exception){
SimpleLogs::writeLog($exception->getMessage(), __CLASS__.':sendMail', 'error');
return false;
}
}
} }
...@@ -82,6 +82,11 @@ $app->configure('response'); ...@@ -82,6 +82,11 @@ $app->configure('response');
$app->alias('cache', \Illuminate\Cache\CacheManager::class); $app->alias('cache', \Illuminate\Cache\CacheManager::class);
$app->configure('mail');
$app->alias('mailer', Illuminate\Mail\Mailer::class);
$app->alias('mailer', Illuminate\Contracts\Mail\Mailer::class);
$app->alias('mailer', Illuminate\Contracts\Mail\MailQueue::class);
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Register Middleware | Register Middleware
...@@ -140,6 +145,8 @@ $app->register(\Jiannei\Logger\Laravel\Providers\ServiceProvider::class); ...@@ -140,6 +145,8 @@ $app->register(\Jiannei\Logger\Laravel\Providers\ServiceProvider::class);
$app->register(Maatwebsite\Excel\ExcelServiceProvider::class); $app->register(Maatwebsite\Excel\ExcelServiceProvider::class);
$app->register(Spatie\CronlessSchedule\CronlessScheduleServiceProvider::class); $app->register(Spatie\CronlessSchedule\CronlessScheduleServiceProvider::class);
$app->register(Illuminate\Mail\MailServiceProvider::class);
/*ext /*ext
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Load The Application Routes | Load The Application Routes
......
<?php
return [
/*
|--------------------------------------------------------------------------
| Default Mailer
|--------------------------------------------------------------------------
|
| This option controls the default mailer that is used to send any email
| messages sent by your application. Alternative mailers may be setup
| and used as needed; however, this mailer will be used by default.
|
*/
'default' => env('MAIL_MAILER', 'smtp'),
/*
|--------------------------------------------------------------------------
| Mailer Configurations
|--------------------------------------------------------------------------
|
| Here you may configure all of the mailers used by your application plus
| their respective settings. Several examples have been configured for
| you and you are free to add your own as your application requires.
|
| Laravel supports a variety of mail "transport" drivers to be used while
| sending an e-mail. You will specify which one you are using for your
| mailers below. You are free to add additional mailers as required.
|
| Supported: "smtp", "sendmail", "mailgun", "ses",
| "postmark", "log", "array", "failover"
|
*/
'mailers' => [
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'local_domain' => env('MAIL_EHLO_DOMAIN'),
],
'ses' => [
'transport' => 'ses',
],
'mailgun' => [
'transport' => 'mailgun',
],
'postmark' => [
'transport' => 'postmark',
],
'sendmail' => [
'transport' => 'sendmail',
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
],
'log' => [
'transport' => 'log',
'channel' => env('MAIL_LOG_CHANNEL'),
],
'array' => [
'transport' => 'array',
],
'failover' => [
'transport' => 'failover',
'mailers' => [
'smtp',
'log',
],
],
],
/*
|--------------------------------------------------------------------------
| Global "From" Address
|--------------------------------------------------------------------------
|
| You may wish for all e-mails sent by your application to be sent from
| the same address. Here, you may specify a name and address that is
| used globally for all e-mails that are sent by your application.
|
*/
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
/*
|--------------------------------------------------------------------------
| Markdown Mail Settings
|--------------------------------------------------------------------------
|
| If you are using Markdown based email rendering, you may configure your
| theme and component paths here, allowing you to customize the design
| of the emails. Or, you may simply stick with the Laravel defaults!
|
*/
'markdown' => [
'theme' => 'default',
'paths' => [
resource_path('views/vendor/mail'),
],
],
];
\ No newline at end of file
@component('mail::message')
震坤行订单{{$message}}未同步成功,请人工下单!
@endcomponent
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment