傳送郵件的操作一般是比較耗時的,所以我們一般採用非同步或者佇列來執行。
php使用redis的publish/subscribe也是一種不錯的選擇,這在以前的一篇博文中寫過。
php語言本身是不支援非同步操作的,不過我們可以通過swoole擴充套件實現非同步功能,這個非同步功能基於tcp協議,相應速度還是不錯的。
$serv = new swoole_server("127.0.0.1", 9501);
//設定非同步任務的工作程序數量
$serv->set(array('task_worker_num' => 4));
$serv->on('receive', function
($serv, $fd, $from_id, $data) );
//處理非同步任務
$serv->on('task', function
($serv, $task_id, $from_id, $data) );
//處理非同步任務的結果
$serv->on('finish', function
($serv, $task_id, $data) );
$serv->start();
function
write
($str)
function
handlefun
($data)
<?php
class
client
//向伺服器傳送資料
if (!$client->send($msg))
//關閉連線
$client->close();
}private
function
write
($str)
}
<?php
include "synclient.php";
$params = array();
$params['subject'] = "世界你好";
$params['content'] = "四姐你好啊,我是三哥,哈哈哈哈哈哈";
$params['mailto'] = "799631071";
$msg = json_encode($params);
$client = new client();
$client->send($msg);
echo "[".date("y-m-d h:i:s")."]繼續忙其他的".php_eol;
非同步傳送郵件
using system using system.collections.generic using system.web using system.net.mail using system.text 傳送郵件類 public class smtpmail void client sendcom...
非同步傳送郵件
利用django自帶的 mail 介面傳送郵件 1 from django.core.mail import emailmultialternatives 2from threading import timer34 def send mail title,content,to list,cc li...
Ajax 非同步傳送郵件
很多系統中,需要實現,提交表單同時傳送郵件通知相關人員的要求.特別在類似oa系統更加常見.而一般傳送郵件都會占用比提交表單 後台對資料處理的時間多很多.想到兩個思路 1.ajax非同步傳送郵件.2.郵件資訊持久化到資料庫,資料庫定時讀取郵件資訊,傳送郵件 現在使用第一種方式 ajax非同步傳送郵件....