導航:首頁 > 編程語言 > linuxphp郵件伺服器

linuxphp郵件伺服器

發布時間:2023-02-17 21:55:05

『壹』 linux 下無法使用mail命令發送郵件

根據你描述的情況,使用mail發郵件是通過本機的postfix來發送的。如果本機的的postfix配置中啟用了relay,則會將發信請求轉發到relay機器進行投遞。如果此時通過mail發不出郵件,則問題有可能出現在relay的伺服器上。
你說的通過php是可以發郵件的,這個和使用mail是兩回事。如果php程序使用的是自己的發信程序,那與本機的postfix可能就沒有什麼關系。這其中具體的配置還要看程序是怎麼設計的。

『貳』 我的php系統在本地可以發郵件,可是在伺服器發不了了。

stmp
設置好沒?

可能linux不兼容吧,我沒試過在linux上發郵件7、XP的發過

『叄』 如何配置發送郵件

從後台進去 系統設置->郵件伺服器設置。
一、郵件發送方式
ECShop 2.5支持如下二種郵件發送方式:
1、採用伺服器內置的 Mail 服務(推薦此方式),見圖 1 所示:
介紹:這種方式是使用 PHP 的函數發送郵件,需要伺服器上安裝 mail 系統。一般的虛擬主機都內置郵件系統。因此強烈推薦使用這種方式。
2、採用其他的 SMTP 服務(支持 SMTP 驗證),見圖 2 所示:
介紹:這種方式適用於 Windows 或者 Linux 類伺服器使用(適合於虛擬主機或者獨立主機使用)。需要站長擁有一個 SMTP 伺服器,例如新浪的 SMTP 伺服器。這里說明一點:發信人郵件地址 -> 如果您填寫的郵件伺服器需要驗證, 必須填寫此伺服器的郵件地址。

『肆』 如何在linux 下配置 SMTP 服務

Linux下的SMTP服務的配置,比較復雜一些,且各發行版本有些差異,以下是一個示例,供參考(建議使用第三個方法)

linux下smtp配置方法有幾種,具體如下:
方法一,使用mail函數發送郵件;使用時時需要在本地系統上正確設置SMTP,否則將不能發送郵件。由於對系統的依賴性比較大,很多時候很不穩定,在一些提供虛擬主機服務的代理商中使用mail函數發送郵件往往很不好用,所以不推薦使用這種方法。
方法二,使用管道的形式發送郵件,主要是使用php中的popen函數。使用管道的方法發送郵件屬於比較底層的操作,它取決於用戶調用程序的穩定性。所以相比mail函數,這是一種可選的發送郵件的方式,但是這些本地的郵件系統都太復雜了,用戶可能不會配置。
方法三(推薦),使用phpmailer。phpmailer類是一個開源的發送郵件類,可以從http://phpmailer.sourceforge.net官網下載,它含兩個文件class.smtp.php和class.phpmailer.php。代碼如下

include_once("class.phpmailer.php");
/**
* 定義郵件模塊配製信息
*/
define("SMTP_HOST","smtp.mail.yahoo.com"); // SMTP 主機
define("SMTP_MAIL"," [email protected]"); // SMTP 用戶email
define("SMTP_PASS"," XXXX"); // SMTP 用的密碼

define("SERVICE_MAIL"," [email protected]"); // SMTP 用戶email
define("SERVICE_NAME","PHPBOOK郵件測試"); // SMTP 用的名字

/**
* 使用phpmailer發郵件模塊
*
* @param string $email
* @param string $user
* @param string $subject
* @param string $body
* @return bool
*/
function sendMail($email,$user,$subject,$body)
{
$mail = new PHPMailer();
//$this;
$mail->IsSMTP(); // 設置使用SMTP
$mail->Host = SMTP_HOST; // 設置SMTP伺服器地址
$mail->SMTPAuth = true; // 打開SMTP許可權驗證
$mail->Username = SMTP_MAIL; // SMTP 用戶名
$mail->Password = SMTP_PASS; // SMTP 伺服器密碼

$mail->From = SERVICE_MAIL; // 設置發送者地址
$mail->FromName = SERVICE_NAME; // 設置發送者名字
$mail->AddAddress($email, $user); // 添加接收者地址
$mail->AddReplyTo(SERVICE_MAIL, SERVICE_NAME); // 設置回復地址

$mail->WordWrap = 50; // 設置顯示格式
$mail->IsHTML(true); // 設置郵件支持html
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AltBody = ""; // 文本類型的郵件

if(!$mail->Send())
{
return $mail->ErrorInfo;
}
return true;
}

//開始發送測試郵件ng: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/xiehui/admin/mail/class.smtp.php on line 89
$tomail = " [email protected]";
$user = " XXXXlinux";
$_mailSubject = "郵件測試示例!"; // 發給用戶的郵件標題小組
$_mailBody = "新浪網"; // 郵件內容小組
sendMail($tomail,$user,$_mailSubject,$_mailBody);
?>

實驗證明yahoo的smtp很好用,號稱sina的其實並不好用,我卡在著好長時間。

方法四,給予socket編寫的程序,源代碼如下

使用socket發送郵件的封裝類:
class sendmail{
var $lastmessage; //記錄最後返回的響應信息
var $lastact; //最後的動作,字元串形式
var $welcome; //用在HELO後面,歡迎用戶
var $debug; //是否顯示調試信息
var $smtp; //smtp伺服器
var $port; //smtp埠號
var $fp; //socket句柄
//發送郵件函數
function send_mail($smtp, $welcome="", $debug=false) {
if(empty($smtp)) die("SMTP不能為空!");
$this->smtp=$smtp;
if(empty($welcome)) {
$this->welcome=gethostbyaddr("localhost");
}else
$this->welcome=$welcome;
$this->debug=$debug;
$this->lastmessage="";
$this->lastact="";
$this->port="25";
}
//顯示調試信息
function show_debug($message, $inout) {
if ($this->debug) {
if($inout=="in"){ //響應信息
$m='<< ';
}else
$m='>> ';
if(!ereg("\n$", $message))
$message .= "
";
$message=nl2br($message);
echo "${m}${message}";
}
}
//執行傳遞的命令
function do_command($command, $code) {
$this->lastact=$command;
$this->show_debug($this->lastact, "out");
fputs ( $this->fp, $this->lastact );
$this->lastmessage = fgets ( $this->fp, 512 );
$this->show_debug($this->lastmessage, "in");
if(!ereg("^$code", $this->lastmessage))
return false;
else
return true;
}
//郵件發送處理
function send( $to,$from,$subject,$message) {
//連接伺服器
$this->lastact="connect";
$this->show_debug("連接到SMTP 伺服器: ".$this->smtp, "out");
$this->fp = fsockopen ( $this->smtp, $this->port );
if ( $this->fp ) {
$this->set_socket_blocking( $this->fp, true );
$this->lastmessage=fgets($this->fp,512);
$this->show_debug($this->lastmessage, "in");
if (! ereg ( "^220", $this->lastmessage ) ) {
return false;
}else{
$this->lastact="HELO " . $this->welcome . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
$this->lastact="MAIL FROM: $from" . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
$this->lastact="RCPT TO: $to" . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
//開始發送郵件正文
$this->lastact="DATA\n";
if(!$this->do_command($this->lastact, "354")){
fclose($this->fp);
return false;
}
//開始處理郵件主題頭
$head="Subject: $subject\n";
if(!empty($subject) && !ereg($head, $message)){
$message = $head.$message;
}
//開始處理郵件From頭
$head="From: $from\n";
if(!empty($from) && !ereg($head, $message)) {
$message = $head.$message;
}
//開始處理郵件To頭
$head="To: $to\n";
if(!empty($to) && !ereg($head, $message)) {
$message = $head.$message;
}
//處理結束串
if(!ereg("\n\.\n", $message))
$message .= "\n.\n";
$this->show_debug($message, "out");
fputs($this->fp, $message);
$this->lastact="QUIT\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
}
return true;
}else{
$this->show_debug("連接失敗!!", "in");
return false;
}
}
}
?>

使用socket發送郵件示例:

include ("./sendmail.class.php");
$mail = new sendmail();
$email = "您好,這是一個測試郵件!";
$sendmail = new send_mail("smtp.mail.126.com","PHPBOOK",true); //顯示調示信息
if($mail->send("[email protected]", "[email protected]", "測試SOCKET郵件", $email)) {
echo "發送成功!
";
}else{
echo "發送失敗!
";
}
?>

『伍』 php網站什麼伺服器系統好windows還是Linux

windows和Linux都可以的,他們各有各的好處。
1、windows伺服器操作方便適用於php初學者,隨著Windows Server2008伺服器的普及,微軟已經開發了適合於php的控制項PHP Manager,可以用IIS7.5+PHP Manager+PHP5.3+Mysql5.5輕松搭建php環境,而且window是操作界面利用初學者維護和學習。
2、Linux伺服器適用於php成熟者,隨著linux桌面工具的普及,已不再是簡單代碼化,也有自己的操作桌面,而利用linux伺服器是為了更好的搭建LAMP環境,而且Linux是開源免費的是代碼級開發更容易實現服務的優化及適合自己的安全方案的布局,另外Linux的核心具有Windows無法比擬的穩定性和高教性,具有強大的網路服務功能,可實現各種網路服務,如郵件月匣務.Web服務.FTP.DNS.DHCP.防火牆、代理伺服器、路由器等

『陸』 linux中簡述wed伺服器配置過程

淺談基於Linux的Intranet環境建造
在建設傳統的Intranet網路環境的時候,我們一般是基於Windows NT Server系統的,在它的基礎上實現一系列的服務。 現在的Linux系統中也包含了很多基於網路建設的軟體服務,基本上我們是完全可以利用Linux系統建立與Windows NT Server所具有的基本Intranet框架相同的框架。並且還可以在這個基礎上發展具有Linux系統自身特點的Intranet環境,在某種程度上其性能還優於Windows NT Server系統。
我們先假設一個基於Linux系統區域網的網路構架。首先,建議使用轉換器把Internet介面轉換為雙絞線,直接連接到一台雙網卡Server上。該Server的另外一塊網卡和其他的Server及Client連接到一個Hub上面,成為一個區域網。雙網卡的伺服器作為防火牆和網關,控制內部網和Internet連接的安全。我們在其上面還可以運行其他的服務,例如文件伺服器、代理伺服器、郵件伺服器和Web伺服器等。另外一台伺服器可以作為資料庫伺服器,在其上主要運行資料庫服務。
雙網卡中對外的網卡必須有正式的IP,另外一塊網卡和其他計算機的網卡可以使用私有IP,范圍從「192.168.1~192.168.254」自由分配,其他計算機的網關地址都指向防火牆網關伺服器的內部IP。防火牆網關伺服器的網路配置要根據申請的IP地址來具體設置。
一般地,我們要求的Intranet環境應該是提供最基礎的WWW服務、FTP服務、DNS服務、網上鄰居等服務項,下面我們就一一簡單地介紹一下。
1.WWW服務
首先我們要實現WWW服務,我們以在RedHat系統的完全安裝中為例,這里系統已經為大家安裝好了目前在Internet上使用得最多的HTTP伺服器Apache, 你只需要使用「setup」命令選擇該服務,或者直接運行「httpd」即可。它的安裝根目錄是在/home/httpd/目錄下的,只要使用瀏覽器按照「IP地址」訪問你的Web server,就能夠看到Apache的說明文檔。如果你要發行自己的主頁,只需要將這些文檔放在/home/httpd/Html/下即可,或者是將httpd.conf中的文檔根目錄修改為你的Windows系統下的目錄,這樣既可以享受Linux的效率,也可享受Windows的頁面製作工具的便利。但是我們要注意在Linux環境中要區分大小寫,所以頁面中的文件名最好統一使用大小寫。在Windows環境中的頁面文件一般是.htm後綴,而預設的Linux系統的瀏覽器Netscap或lyxn解釋的頁面文件是以.html為後綴的,你只需要在/etc/mime.types中增加如下一行即可:text/html html htm。同樣,你也可以按照注釋修改以下配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/Access.conf
/etc/httpd/conf/srm.conf 以建立更加強大而靈活的WEB伺服器。
2.FTP服務
接著讓我們看看FTP服務的實現,我們依然是在RedHat系統的完全安裝中,RedHat系統已經為你安裝好了目前Internet流行的WU-FTP-2.4.2 Server。它的匿名訪問目錄在/home/ftpd/中,如果是在FTP客戶端使用普通帳戶登錄,那麼我們將直接進入該賬戶的主目錄。它的配置文件主要是:
/ect/ftpaccess。
域名服務(DNS服務)的功能是把我們取的名字映射為具體的IP地址。目前Internet流行的域名伺服器BIND,它的執行進程是「named」,其配置文件有:
/ect/named.conf
/etc/resolv.conf
/var/named/named.ca
/var/named/named.local
/var/named/named.hosts(自建)
/var/named/named.rev
其中的自建文件需要符合「named」配置文件的格式,我們從已有的文件中cp即可,尤其注意BIND 4的配置文件格式和BIND 8p是完全不同的,如果使用的版本不同的話,請查閱其具體的配置文件。
3.RAS服務
RAS服務(PPP)也是傳統的服務之一,配置PPP在Linux系統中是比較復雜的一項工作。它的主要配置文件有:
/etc/mgetty+sendfax/mgetty.config
/etc/mgetty+sendfax/loging.config
/etc/inittab
/etc/ppp/options
/etc/ppp/ppplogin
/etc/ppp/options.ttyS2
/etc/ppp/pap-secrets
/etc/hosts
提醒大家的是如果使用Win95的撥號適配器的話,它的網關為撥號伺服器的IP,DNS為內部網的DNS Server的IP,設置遠程自動配置IP,新手可以先不啟動該服務。
4.DHCP功能
DHCP的功能是動態分配IP地址。注意在啟動dhcpd之前,增加一項預設路由:/sbin/route add -host 255.255.255.255 dev eth0詳細的格式可以使用「main dhcpd」得到。它的執行進程是「dhcpd」,它的配置文件有:
/etc/dhcpd.conf /etc/dhcpd.leases(空文件)
/etc/dhcpd.leases~(空文件夾)
5.網上鄰居
網上鄰居(smbd nmbd)也是我們很關心的功能,微軟的網上鄰居是局域內直接而簡便的資源共享方法,但它採用的是Netbeui協議。而Linux系統採用的主要是TCP/IP協議,它提供的Samba可以方便地完成網上鄰居的功能,讓你的用戶通過網上鄰居看到你的伺服器和共享的資源。其主要配置文件有:
/etc/smb.conf
/etc/smbusers
代理服務和防火牆(routed lpmasquerdde ipfwadm)的設置對於一些用戶也是必要的。在Windows NT中也有「routed」命令,但要實現共享IP地址卻要使用專門的代理軟體,如proxy Server、 Wingate、Winproxy等。在這方面,Linux利用核心支持的「ipmasquerad」功能,配合「routet」和「ipfwadm」則可以輕松地實現這一功能,並且在使用瀏覽器時還不需要指定代理伺服器,同時利用「ipfwadm」確定接收和發送數據包的規則,並且還可以提供基於包過濾的防火牆設施。它的主要配置命令有:
/sbin/ipfwadm -F -P deny
/sbin/ipfwadm -F -a m -s 192.168.0.0/16 -D 0.0.0.0/0
/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 130.0.40.1
6.SQL資料庫系統
SQL資料庫系統(postgresql)在目前的Intranet環境中是越來越重要了,但在Windows NT平台上運行的商品化的SQL資料庫價格不菲。Linux系統集成的SQL資料庫主要有Postgre和SQLmysql,它們均達到了SQL92的標准,並且提供在 Windows系統的客戶端的ODBC驅動程序,是非常理想的後端資料庫系統。PostgreSQL是普遍使用的免費SQL資料庫系統之一,而且是一些商用SQL資料庫的原形。盡管它可能沒有現在的某些商品化SQL功能強大,並且能夠處理中文,作為一般的Intranet Web資料庫系統,使用它已經是綽綽有餘了。它還為編制CGI程序提供了方便的介面。要訪問postgreSQL可使用命令「psql」,預設的管理員賬號「postgres」是在安裝後禁用的,需要給予登錄許可權。為了讓Web客戶能夠訪問資料庫,我們需要給「nobody」用戶授權。
微軟的ASP技術作為IIS的模塊,可以簡化CGI程序的編制,提高Web伺服器的效率,提供靈活的資料庫連接方法。Linux系統中的Apache也有相應的PHP模塊,由於Linux系統中包含有使用最廣泛的CGI編程語言PERL 5,所以我們可以輕松而高效地設計CGI程序。
7.其他實現
Linux系統里還有一些對構建Intranet環境比較有用的東西,比如磁碟限額(quota)服務,使用限額機制可以控制用戶對資源的擁有量,防止非法上載,是多用戶環境下必須具備的功能。我們還是以RedHat為例,RedHat中啟動磁碟限額方法很簡單,只需要使用Linuxconf中的相應選項即可。但是你需要在實施限額的文件系統的根目錄下建立「quota.user」和「quota.group」兩個空文件,並且,應該在安裝完系統後立即啟動該服務,linuxconf程序不光可以動態配置系統,而且具有多種工作界面,極大地方便了用戶配置與管理系統。為了能夠運行linuxconf,我們必須以根(root)用戶的身份登錄Linux系統。如果你不是以根用戶的身份登錄系統,那麼可在系統提示符下執行「su」命令,變成根用戶。常見的linuxconf工作界面有:命令行界面、字元單元界面(使用了像RedHat Linux安裝時的用戶界面形式)、基於XWindow的界面(提供易於使用的「點擊」樹狀菜單)。
我們以RedHat Linux 6.0系統為例,想要linuxconf在Web瀏覽器環境工作,必須進行以下設置:
* 在gnome-linuxconf對話框中,打開「Config/Networking/Misc/Linuxconf network access」分支,選中「Enable netwoork access」選項。
* 在對話框中輸入任何允許使用Linuxconf的計算機的主機名,包括用戶主機名字。
* 選擇「Accept」按鈕,並按空格鍵,單擊「Quit」按鈕。
* 啟動Netscape瀏覽器,在URL欄鍵入:http://〈hostname〉:98/ 〈cr〉。其中,必選項「hostname」應換成用戶計算機的主機名。
* 選擇瀏覽器頁面底部的「Start」按鈕,在彈出的口令驗證框中,分別輸入根用戶的名字「root」和相應的口令。如果口令正確,則進入基於Web的linuxconf工作界面。該界面主要由Config和Control兩部分組成,它們各自均含有5個具有超鏈接特性的選項,用戶單擊具體的選項,即可打開對應的頁面,完成相應的配置。
Linux系統中包含的「sendmail」是Internet電子郵件系統中主要的SMTP軟體,「imapd」軟體是POP3郵件伺服器,可以讓你使用Netscape或IE輕松收發電子郵件。注意,你要在/etc/sendmail.cw中添加內部域名,再將/etc/sendmail.cf中的F項修改為Fw/etc/sendmail.cw.遠程登錄(Telnet)。
現在有很多的關於Linux系統方方面面的文章,所以如果是要建立一個基於Linux系統的Intranet環境,還有很多的參考,而且要是想讓你的Intranet環境完美起來,還有很多的服務等你實現。
(出處:http://www.hackhome.com)

『柒』 如何通過php發送郵件php的mail函數不能用!

支持mail的伺服器 一般都是linux的 國內的好像不多
自己的電腦安裝mail伺服器不能往外發的 呵呵 可以自己測試用
現在很多管理系統都是用fsocketopen方式連接郵件伺服器並發送郵件的 可以使用163 126的郵箱 網上有一些模型的 就像是好多管理系統後台讓填入用戶名和密碼 就能群發一樣 如果你不介意的話 給你轉發一個以前我自己改過的可以利用fsocketopen方式群發或者單發email的一共三個文件
MailClass.php 》》》》》》
<?php
class Smtp
{
var $host; //主機
var $port; //埠 一般為25
var $user; //SMTP認證的帳號
var $pass; //認證密碼
var $debug = false; //是否顯示和伺服器會話信息?
var $conn;
var $result_str; //結果
var $in; //客戶機發送的命令
var $from; //收件人收到郵件顯示的源信箱
var $email; //真實的地址
var $to; //目標信箱
var $subject; //主題
var $body; //內容
var $error;
var $All;
function Smtp($array)
{
$this->host = $array['host'];
$this->port = $array['port'];
$this->email= $array['trueemail'];
$this->from = $array['from'];
$this->user = base64_encode($array['username']);
$this->pass = base64_encode($array['password']);
$this->debug = $array['debug'];
$this->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);

if($this->socket){
$this->result_str = "創建SOCKET:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失敗,請檢查您的網路連接和參數");

$this->conn = socket_connect($this->socket,$this->host,$this->port);
if($this->conn){
$this->result_str = "創建SOCKET連接:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失敗,請檢查您的網路連接和參數");

$this->result_str = "伺服器應答:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);

}

function debug_show($str)
{
if($this->debug)
{
echo $str."<p>\r\n";
}
}

function setmail($to,$subject,$body){
$this->to = $to;
$this->subject = $subject;
$this->body = $body;

$All ="Content-type:text/html;charset=gb2312\r\n"; //郵件的編碼方式可以根據自己的需要改
$All .= "From:".$this->from."\r\n";
$All .= "To:".$this->to."\r\n";
$All .= "Subject:".$this->subject."\r\n\r\n";
$All .= $this->body;
$this->All = $All;
}
/**
* 發送郵件部分
* 接收郵箱數組
*/
function send($toarray,$subject,$body)
{
//以下是和伺服器會話
$this->in = "EHLO HELO\r\n";
$this->docommand();

$this->in = "AUTH LOGIN\r\n";
$this->docommand();

$this->in = $this->user."\r\n";
$this->docommand();

$this->in = $this->pass."\r\n";
$this->docommand();

foreach( $toarray as $to ) {
$this -> setmail($to,$subject,$body);

$this->in = "RSET\r\n";
$this->docommand();

$this->in = "MAIL FROM:<".$this->email.">\r\n";
$this->docommand();

$this->in = "RCPT TO:<".$this->to.">\r\n";
$this->docommand();

$this->in = "DATA\r\n";
$this->docommand();

$this->in = $this->All."\r\n.\r\n";
$this->docommand();
}

$this->in = "QUIT\r\n";
$this->docommand();

//結束,關閉連接
}
function docommand()
{
socket_write ($this->socket, $this->in, strlen ($this->in));
$this->debug_show("Client Action:".$this->in);
$this->result_str = "Server:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
}
?>

MailConfig.inc.php 》》》》》》

<?php
$mailconfig['host'] = "smtp.126.com"; //主機
$mailconfig['port'] = "25"; //埠 一般為25
$mailconfig['trueemail'] = "[email protected]"; //真實的地址
$mailconfig['username'] = "mhz1600"; //SMTP認證的帳號
$mailconfig['password'] = "*****"; //改成自己的
$mailconfig['debug'] = false; //是否顯示和伺服器會話信息?
$mailconfig['from'] = "[email protected]"; //顯示給用戶的發件人

include_once "MailClass.php";
set_time_limit(180);
?>

SendDemo.php 》》》》》》
<?php
include_once "MailConfig.inc.php";

//簡單的臨時碼驗證 當前時間(到小時)的驗證碼
//if( empty($_GET['s']) || $_GET['s'] != md5(date('Y-m-d-H',time())) ) {header("http/1.1 404"); die('');}

//發送email
if( isset($_POST['sendmail']) ) {
if( isset($_POST['from']) ) $mailconfig['from'] = $_POST['from'];
$smtp = new Smtp($mailconfig);
$title = $_POST['title'];
//獲取post的email正文
if( get_magic_quotes_gpc() ) $message = $_POST['message'];
else $message = addslashes($_POST['message']);

//從email列表/文檔中分離出所有的email地址
$pregstr = "@[a-zA-Z0-9\_][0-9a-zA-Z\.\-\_]+\@[0-aA-Za-z\-\_]+\.[0-9a-zA-Z\.\-\_]+@is";
$temp = array();
preg_match_all($pregstr,$_POST['emails'],$temp);
$toarray = $temp[0];
//var_mp($toarray);

$smtp->send($toarray,$title,$message);

die("操作完成!<A href=".$_SERVER['PHP_SELF']."?s=".md5(date('Y-m-d-H',time())).">繼續發送其他</a> <a href=# onclick=window.close()>關閉</a>");
}
else {
if( isset($_POST['emails']) ) {
if( is_array($_POST['emails']) )
$emails = implode("\t",$_POST['emails']);
else
$emails = $_POST['emails'];
}
else $emails = "";
?>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style></head>

<body>
<form id="form1" name="form1" method="post" action="">
<table width="600" border="1" align="center" cellpadding="3" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#eeeeee">
<tr>
<td width="66">發件人:</td>
<td width="516"><input name="from" type="text" value="<?php echo $mailconfig['from']; ?>"> 可以直接修改mailconfig文件中的email</td>
</tr>
<tr>
<td>郵件標題:</td>
<td><input name="title" type="text" value="郵件群發測試標題!" size="60"></td>
</tr>
<tr>
<td>收件人:<br></td>
<td><textarea name="emails" cols="60" rows="5"><?php echo $emails; ?></textarea></td>
</tr>
<tr>
<td>郵件正文:<br>
【html】</td>
<td><textarea name="message" cols="60" rows="10">郵件群發測試!謝謝~!</textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="sendmail" value=" 發送郵件 "> </td>
</tr>
</table>
</form>
<?
}
?>
</body>
</html>

使用方式 運行senddemo.php就行 確定本地或者伺服器開啟了fsocketopen支持 在輸入框可以多種格式的的輸入很多email 程序用正則表達式匹配出所有的email地址 通過伺服器循環對話的方式不斷的發送郵件 看看那個demo的流程就明白了
【鄭重聲明:mailclass修改自網上的模型 其他本人原創,版權不究 歡迎分享】

+---------------------廣告-------------------------+
那一天:回憶,讓生活更美好
獨享人生中那個特別的日子,記錄從那一天開始的幸福
http://www.nayitian.net
期待您的加入,歡迎提供寶貴的意見建議
+--------------------------------------------------+

+--------------------補充--------------------+
發送郵件的伺服器(smtp)並不是網址 126發送郵件的伺服器是 smtp.126.com 網易163的發送郵件伺服器是 smtp.163.com 所有郵箱對於這個都有說明的 還有一個就是能夠使用這個功能的好象新注冊的郵箱不太好用 因為網易在2006年10對郵箱進行過調整 在此之前注冊的都沒問題 在這之後注冊的好像開通一些其他的功能並且使用了一段時間才行的
smtp伺服器的鏈接可以在命令提示行下測試 就是使用上面的命令:
首先 telnet smtp.126.com 25
因為smtp使用的25埠提供服務的 然後就會看到
220 126.com Anti-spam GT for Coremail System (126com[071018])
輸入 EHLO HELO
伺服器返回
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

輸入 AUTH LOGIN
伺服器返回
334 dXNlcm5hbWU6
然後再輸入通過base64加密的用戶名和密碼 就能通過命令來和伺服器對話 包括發送郵件等功能

具體的如果有興趣更多命令自己查一下
這個php的程序就是模擬這個功能來實現的

如果你用telnet直接連不上的話 說明伺服器是錯誤的 。。

『捌』 linux PHPMailer 發送郵件sendmail 發郵件失敗問題

1、用的騰訊雲伺服器,折騰了很多資料,發現改錯了。謹記檢查埠25開放
2、TP框架用PHPMailer 發送郵件,windows本地測試正常,上傳到騰訊雲linux伺服器就發送不成功:
細節如下: [root@VM_82_192_centos ~]# tail -40 /var/log/maillog

把class.phpmailer.php中的$this->mailer = smtp;中的smtp換成大寫:SMTP。說是因為qq 163等郵箱需要接受發送過來的大寫的SMTP;
發現還是不成功
反過頭來檢查25埠:

發現沒反應:yum重裝sendmail,還是同樣。直接殺到雲伺服器哪兒,檢查25埠是否開放;淚流滿面:趕緊解封。

確認:

OK,測試發送 mail -s '33333333555ksTest mail' [email protected] < /etc/passwd

『玖』 php用smtp 發送郵件失敗提示無法連接到主機

PHPMailer是一個郵件發送插件有很多朋友使用它來發郵件,但也有不少朋友在使用期PHPMailer發郵件時就碰到」SMTP 錯誤:無法連接到 SMTP 主機「錯誤了,出現這種問題我們從幾個點來分享,一個是郵箱配置有問題,另一個是我們的php.ini環境中有些函數沒開啟導致的,下面我來給各位詳細介紹一下問題的排除技巧。

方法2:使用stream_socket_client函數

一般fsockopen()被禁,pfsockopen也有可能被禁,所以這里介紹另一個函數stream_socket_client()。

stream_socket_client的參數與fsockopen有所不同,所以代碼要修改為:

$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $tval);

這樣就可以了。

閱讀全文

與linuxphp郵件伺服器相關的資料

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275