當前位置:首頁 » 編程語言 » phpsmtp郵件發送

phpsmtp郵件發送

發布時間: 2024-05-01 22:43:04

php通過 smtp發送郵件問題

程序中:$this->smtp_putcmd("", base64_encode($this->pass)
登陸密碼base64後明文發送,認證方式為未加密方式,163的郵箱支持未加密的認證,其他郵箱就未必了,而且像google郵箱也不接晌搏鬧受來自本localhost主機發送的郵件,只接受開放smtp服務的主機發送郵件。

以下這段程序是原來寫的,探測smtp主機的,在$server數組中添加smtp主機就可以了,只有返回AUTH LOGIN PLAIN的才可以用你說的程序發送郵件:

<?
set_time_limit( 0 );
$server = array(
"smtp.163.com",
"smtp.sina.com",
"銀陪smtp.google.com",
);
echo "<pre style='font-size:12px;font-family:verdana'>";
foreach ( $server as $key => $val) {
$fp = fsockopen( $val, 25, $errno, $errstr, 10 );
if ( $errno !==0 ) {
echo("Can not connect to $val .\宴罩r\n");
continue;
}
echo "\r\n<font color=red>$val</font> \r\n";
echo fread( $fp, 1024);
fputs( $fp, "EHLO localhost\r\n" );
echo fread( $fp, 1024 );
fclose( $fp );

⑵ php鍙戦侀偖浠剁殑鏈嶅姟綾誨嚭鐜伴敊璇痵mtp_connect_failed錛屾庝箞瑙e喅錛

閭浠舵湇鍔″櫒榪炴帴澶辮觸錛屼粩緇嗘鏌ヤ綘鍙戦偖浠剁殑閭綆卞湴鍧鍜屽瘑鐮佹槸鍚︽g『錛屾鏌ラ偖綆辨槸鍚﹀紑閫歋TMP

⑶ 用PHP發送電子郵件的方法

<?
/*
* 郵件發送類
*/
class smail {
//您的SMTP 伺服器供應商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證,如不清楚請與你的smtp 服務商聯系。
var $check = 1;
//您的email帳號名稱
var $username = "";
//您的email密碼
var $password = "";
//此email 必需是發信伺服器上的email
var $s_from = "";

/*
* 功能:發信初始化設置
* $from 你的發信伺服器上的郵箱
* $password 你的郵箱密碼
* $smtp 您的SMTP 伺服器供應商,可以是域名或IP地址
* $check SMTP需要要身份驗證設值為 1 不需要身份驗證值為 0,現在大多數的SMTP服務商都要驗證
*/
function smail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}

/*
* 功能:發送郵件
* $to 目標郵箱
* $from 來源郵箱
* $subject 郵件標題
* $message 郵件內容
*/
function send ( $to, $from, $subject, $message ) {

//連接伺服器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "聯接伺服器失敗".__LINE__;
set_socket_blocking($fp, true );

$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "錯誤信息1:$lastmessage".__LINE__;

//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";

fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "錯誤信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}

//身份驗證
if ($this->check=="1") {
//驗證開始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息3:$lastmessage".__LINE__;
//用戶姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "錯誤信息4:$lastmessage".__LINE__;
//用戶密碼
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "錯誤信息5:$lastmessage".__LINE__;
}

//FROM:
$lastact="MAIL FROM: <". $this->s_from . ">\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息6:$lastmessage".__LINE__;

//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "錯誤信息7:$lastmessage".__LINE__;

//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "錯誤信息8:$lastmessage".__LINE__;

//處理Subject頭
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;

//處理From頭
$head="From: $from\r\n";
$message = $head.$message;

//處理To頭
$head="To: $to\r\n";
$message = $head.$message;

//加上結束串
$message .= "\r\n.\r\n";

//發送信息
fputs($fp, $message);
$lastact="QUIT\r\n";

fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
/*發送示例
$sm = new smail( "用戶名@163.com", "密碼", "smtp.163.com" );
$end = $sm->send( "目標郵箱", "來源郵箱", "這是標題", "這是郵件內容" );
if( $end ) echo $end;
else echo "發送成功!";
*/
?>

⑷ 如何在phpcms中設置smtp驗證發送郵件

一、使用易網庫提供的企業郵箱

1.登錄phpcms後台,點擊「設置」——「郵箱配置」進入郵箱設置界面,如圖1

⑸ 學習php發送郵件的時候報錯SMTP Error: Could not authenticate.是什麼原因

可能的原因有2個
1、smtp驗證沒通過,就是smtp server 的用戶名和密碼不正確
2、Linux系統中的saslauthd服務配置出錯,文件地址:/etc/sysconfig/saslauthd
文件將裡面的內容
FLAGS= # 此處應該為空,修改前為 FLAGS="r"

⑹ 如何使用php通過smtp發送郵件步驟

由於php沒有提供現成的smtp函數,卻提供了一個功能不甚靈活的mail()函數,這個函數需要伺服器配置上的支持,並且不支持smtp驗證,在很多場合無法正常的工作,因此不建議使用。

  • 首先是使用telnet來連接本地的25埠,稍微熟悉點網路的人都知道smtp協議使用25埠,這也就是說,現在在連接本地的smtp伺服器。




    <?php
    require_once'Mail.php';

    $conf['mail']=array(
    'host'=>'xx.xx.xx.xx',//smtp伺服器地址,可以用ip地址或者域名
    'auth'=>true,//true表示smtp伺服器需要驗證,false代碼不需要
    'username'=>'tester',//用戶名
    'password'=>'retset'//密碼
    );

    /***
    *使用$headers數組,可以定義郵件頭的內容,比如使用$headers['Reply-To']可以定義回復地址
    *通過這種方式,可以很方便的定製待發送郵件的郵件頭
    ***/
    $headers['From']='[email protected]';//發信地址
    $headers['To']='[email protected]';//收信地址
    $headers['Subject']='testmailsendbyphp';//郵件標題
    $mail_object=&Mail::factory('smtp',$conf['mail']);

    $body=<<<MSG//郵件正文
    helloworld!!!
    MSG;

    $mail_res=$mail_object->send($headers['To'],$headers,$body);//發送

    if(Mail::isError($mail_res)){//檢測錯誤
    die($mail_res->getMessage());
    }
    ?>

    ⑺ 濡備綍鍦╬hpcms涓璁劇疆smtp楠岃瘉鍙戦侀偖浠

    ⑻ 請問一下,PHP配置SMTP怎麼弄

    PHPMailer的獲取:

    PHPMailer項目地址:PHPMailer 使用git命令克隆到本地,或直接在該項目頁面的右下方點擊「 Download ZIP 」即可獲取到完整的PHPMailer代碼包,再到本地解壓即可。

    步驟一:使我們的QQ郵箱能夠發送郵件

    這里怎麼說能夠發送郵件呢?其實我們的郵箱都是可以發送郵件的,但是要實現在我們的網站中發送郵件,那就要設置一下我們的QQ郵箱了,因為此時我們的網站現在是作為一個第三方客戶端存在的。

    步驟一:使我們的QQ郵箱能夠發送郵件

    這里怎麼說能夠發送郵件呢?其實我們的郵箱都是可以發送郵件的,但是要實現在我們的網站中發送郵件,那就要設置一下我們的QQ郵箱了,因為此時我們的網站現在是作為一個第三方客戶端存在的

    • 由於待會我們用到的是SMTP伺服器來發送,在這里建議把前面的兩項開啟了!當你點擊開啟的時候,它會提示:

    • <?phprequire_once("./functions.php");$flag=sendMail('[email protected]','lsgo在線通知','恭喜你成功加入LSGO實驗室,開啟你的學習之旅吧!');if($flag){echo"發送郵件成功!";
      }else{echo"發送郵件失敗!";
      }?>

熱點內容
電腦主機做伺服器下載快不 發布:2024-11-28 00:32:40 瀏覽:386
冷凍存儲盒 發布:2024-11-28 00:21:04 瀏覽:127
達內幼兒編程 發布:2024-11-28 00:21:02 瀏覽:320
我的世界下100層是什麼伺服器 發布:2024-11-28 00:16:50 瀏覽:548
怎麼改配置密碼 發布:2024-11-28 00:16:44 瀏覽:113
伺服器晶元v幾是什麼 發布:2024-11-28 00:15:37 瀏覽:599
家庭麥克需要什麼配置才能用 發布:2024-11-28 00:05:28 瀏覽:384
c語言then是什麼意思 發布:2024-11-27 23:54:07 瀏覽:195
提升訪問 發布:2024-11-27 23:41:39 瀏覽:821
為什麼學習編程 發布:2024-11-27 23:41:37 瀏覽:942