我目前正在我的服务器端使用cPanel,我已经尝试了所有在线教程,展示了如何将所有电子邮件传输到Laravel项目,我确实找到了一个适用于Laravel 4的教程但不幸的是它没有在Laravel 5.0上为我工作:
http://www.sitepoint.com/piping-emails-laravel-application/
我已经将我的cPanel“默认地址”设置为php处理程序文件,但由于我正在使用Laravel,我无法使用此文件来处理应用程序类并为我的客户执行操作(例如发送通知) ,保存数据库中的电子邮件信息等...) 如果有一个很好的清洁方法可以让我知道。
顺便说一句,我需要这个域名上的所有电子邮件才能转到我的php处理程序,而不是仅从一个地址,因为我的每个客户都有自己的电子邮件地址答案 0 :(得分:6)
我最终在mandrill上创建了一个免费帐户,他们将我所有传入的电子邮件发布到我的一条路线上...而且,我创建了一个控制器来处理来自mandrill的传入电子邮件,我可以做任何我需要的那里...这是最好的方式...我在不到2秒的时间内收到并处理电子邮件。太棒了。
我已将mandrill MX记录添加到我的子域中,现在我向所有客户提供了一个包含此子域名的电子邮件地址“username@inbox.mydomain.com”
这是我的路线:
Route::post('inbound/message', 'MailController@inboundMessages');
这是我的控制器示例:
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
}
}
}
希望它有所帮助:)祝你好运