Mailgun API
Api is faster than SMTP and easy to use
Example from php(Laravel)
<?php
/*
Для работы с "Mailgun" нужно установить:
// SDK mailgun & adapter guzzle
composer require mailgun/mailgun-php
composer require php-http/guzzle6-adapter
*/
namespace App\Http\Support;
use Illuminate\Http\Request;
use Mailgun\Mailgun;
class MailSupport
{
// sandbox
// private $api_key = 'key-XXXXXXXXXXXXXXXXXXXXXXXXXX';
// private $domain_name = 'sandboxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
// mail.foodcontrol.club
private $api_key = 'key-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
private $domain_name = 'mail.foodcontrol.club';
private $from = 'foodcontrol@club.mail';
/*******************************************************
* Забрать все письма (Log)
*
*******************************************************/
public function getLogs(){
# Instantiate the client.
$mgClient = new Mailgun($this->api_key);
$domain = $this->domain_name;
// Get logs of sending
$result = $mgClient->get("$domain/log");
dd($result);
}
/*******************************************************
* Выслать письмо
*
*******************************************************/
public function sendMail($to, $subject, $type, array $data, $html = false){
// провереям какое письмо(содержимое для пиьсма) нам взять
if(!$html){
if($type == 'reset_password'){ $html = $this->ResetPasswordMail($data['new_pwd']); }
}
# Instantiate the client.
$mgClient = new Mailgun($this->api_key);
$domain = $this->domain_name;
# Выслать сообщение
$result = $mgClient->sendMessage($domain,
[
'from' => $this->from,
'to' => $to,
// 'cc' => 'baz@example.com',
// 'bcc' => 'bar@example.com',
'subject' => $subject,
'html' => $html
]
// [
// 'attachment' => array('/path/to/file.txt', '/path/to/file.txt')
// ]
);
// $result->http_response_body->message;
// $result->http_response_body->id;
return $result->http_response_code;
}
/*******************************************************
* Письмо для сброса пароля
*
*******************************************************/
public function ResetPasswordMail($new_password){
return '
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Новый пароль</title>
</head>
<body>
<div >
<h2>Здравствуйте!</h2>
<p>Ваш пароль был сброшен!</p>
<p>Вы сможете изменить пароль в разделе <a href="'. route('settings.app') .'">"Настройки"</a></p>
<p>Новый пароль:</p>
<h2><strong>'. $new_password .'</strong><h2></p><br>
</div>
<h4 style="color:rgb(159, 159, 159)">FoodControl Team</h4>
</body>
</html>
';
}
}