Afi*_*eri 2 php email-integration laravel-5
我目前正在我的服务器端使用cPanel,我已经尝试了所有在线教程,展示了如何将所有电子邮件传输到Laravel项目,我确实找到了一个适用于Laravel 4的教程,但不幸的是它对我不起作用在Laravel 5.0上:
http://www.sitepoint.com/piping-emails-laravel-application/
我已经将我的cPanel"默认地址"设置为php处理程序文件,但由于我正在使用Laravel,我无法使用此文件来处理应用程序类并为我的客户执行操作(例如发送通知,保存电子邮件)关于数据库等的信息......)如果有一个很好的清洁方法可以让我知道.
顺便说一句,我需要这个域名上的所有电子邮件才能转到我的php处理程序,而不是仅从一个地址,因为我的每个客户都有自己的电子邮件地址
我最终在mandrill上创建了一个免费帐户,他们将我所有传入的电子邮件发布到我的一条路线上...而且,我已经创建了一个控制器来处理来自mandrill的传入电子邮件,我可以在那里做任何我需要的事情. .Thats最好的方式...我在不到2秒的时间内收到并处理电子邮件.棒极了.
我已经将mandrill MX记录添加到我的子域中,现在我给了我的所有客户一个带有这个子域的电子邮件地址"username@inbox.mydomain.com"
这是我的路线:
Route::post('inbound/message', 'MailController@inboundMessages');
Run Code Online (Sandbox Code Playgroud)
这是我的控制器示例:
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
class MailController extends Controller
{
/**
* main function to receive incoming email from mandrill POST request
* @param JSON $request Mandrill Object in JSON format
* @return string
*/
public function inboundMessages(Request $request){
if(isset($request['mandrill_events'])){
$messageJson = json_decode($request['mandrill_events']);
$message = $messageJson[0]->msg;
$email = [
"to" => $message->email,
"from" => $message->from_email,
"name" => isset($message->from_name) ? $message->from_name : "No Name",
"subject" => isset($message->subject) ? $message->subject : "No Subject",
"content" => isset($message->text) ? $message->text : "",
"content_html" => isset($message->html) ? $message->html : ""
];
//do whatever you want with your $email
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望它有所帮助:)祝你好运
| 归档时间: |
|
| 查看次数: |
1769 次 |
| 最近记录: |