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

php發送qq郵件

發布時間: 2023-04-27 19:36:04

A. 本地php能發郵件嗎

可以的

比較簡單的是顫旦借用外部SMTP伺服器發送郵箱,比如現在的QQ郵箱是支持SMTP服務的,然後利用phpmailer,作些簡單畢沒設置茄數擾即可

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

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

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

C. PHP中的SMTP servers該怎麼解決 我的SMTP servers設置為smtp.qq.com。是不是只能給QQ郵箱發送

smtp.qq.com
可以向所有郵箱發送,QQ郵箱只是作為你的郵件發送伺服器

D. php利用mail發送郵件問題

那你可以參攔圓吵考一下PW的程序.

試一下這個

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

<?php
require_once 'Mail.php';

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

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

$body = "<h1>meg</h1>"; //郵件正文

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

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

E. 我想用PHP寫個表單直接發送到 QQ郵箱,最好網站不登陸也能發的。最好能寫出具體的代碼

<?
/*
* 郵件發送類
*/
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 "發送成功!";
*/
?>

F. 如何用PHP里的IMAP函數,實現郵件的發送,希

//以騰訊企業郵箱做了測試
$mailServer="imap.exmail.qq.com";//IMAP主機
$mailLink="{{$mailServer}:143}INBOX";//imagp連接地址:不同主機地址不同
$mailUser='***';//郵箱用戶名
$mailPass='***';//郵箱密碼
$mbox=imap_open($mailLink,$mailUser,$mailPass);//開啟信箱imap_open
$totalrows=imap_num_msg($mbox);//取得信件數
for($i=1;$i<$totalrows;$i++){
$headers=imap_fetchheader($mbox,$i);//獲取信件標頭
$headArr=matchMailHead($headers);//匹配信件標頭
$mailBody=imap_fetchbody($mbox,$i,1);//獲取信件正文
}
/**
*
*匹配提取信件頭部信息
*@paramString$str
*/
functionmatchMailHead($str){
$headList=array();
$headArr=array(
'from',
'to',
'date',
'subject'
);
foreach($headArras$key){
if(preg_match('/'.$key.':(.*?)[ ]/is',$str,$m)){
$match=trim($m[1]);
$headList[$key]=$key=='date'?date('Y-m-dH:i:s',strtotime($match)):$match;
}
}
return$headList;
}

G. PHP中發送郵件的代碼!

從代碼來看,想必樓主是想把表單提交的內容發送至指定郵箱,而這個郵箱地址也是在表單中填寫的,$sendTo變數的值被賦為表單項「toMail」傳過來的值。
如此,你可以在填寫表單的時候在toMail表單項里填入「[email protected]」,或者直接$sendTo="[email protected]"。

接下來就要考慮是否能發送出去了:

1、如果樓主配置的伺服器安裝了sendmail組件,就可以直接使用你寫的這段代碼來完成任務。

2、如果沒有安裝sendmail組件,就要接用smtp伺服器來發送了。這樣相對較復雜,要引用一個PHP類。具體代碼如下:

SMTP.PHP:
<?php
class smtp
{
/* Public Variables */
var $smtp_port;
var $time_out;
var $host_name;
var $log_file;
var $relay_host;
var $debug;
var $auth;
var $user;
var $pass;

/* Private Variables */
var $sock;

/* Constractor */
function smtp($relay_host = "", $smtp_port = 25,$auth = false,$user,$pass)
{
$this->debug = FALSE;
$this->smtp_port = $smtp_port;
$this->relay_host = $relay_host;
$this->time_out = 30; //is used in fsockopen()

#
$this->auth = $auth;//auth
$this->user = $user;
$this->pass = $pass;

#
$this->host_name = "localhost"; //is used in HELO command
$this->log_file = "";

$this->sock = FALSE;
}

/* Main Function */
function sendmail($to, $from, $subject = "", $body = "", $mailtype, $cc = "", $bcc = "", $additional_headers = "")
{
$mail_from = $this->get_address($this->strip_comment($from));
$body = ereg_replace("(^|(\r\n))(\.)", "\1.\3", $body);
$header = "MIME-Version:1.0\r\n";

if($mailtype=="HTML")
{
$header .= "Content-Type:text/html\r\n";
}

$header .= "To: ".$to."\r\n";

if ($cc != "")
{
$header .= "Cc: ".$cc."\r\n";
}

$header .= "From: $from<".$from.">\r\n";
$header .= "Subject: ".$subject."\r\n";
$header .= $additional_headers;
$header .= "Date: ".date("r")."\r\n";
$header .= "X-Mailer:By Redhat (PHP/".phpversion().")\r\n";

list($msec, $sec) = explode(" ", microtime());

$header .= "Message-ID: <".date("YmdHis", $sec).".".($msec*1000000).".".$mail_from.">\r\n";

$TO = explode(",", $this->strip_comment($to));

if ($cc != "")
{
$TO = array_merge($TO, explode(",", $this->strip_comment($cc)));
}

if ($bcc != "")
{
$TO = array_merge($TO, explode(",", $this->strip_comment($bcc)));
}

$sent = TRUE;

foreach ($TO as $rcpt_to)
{
$rcpt_to = $this->get_address($rcpt_to);

if (!$this->smtp_sockopen($rcpt_to))
{
$this->log_write("Error: Cannot send email to ".$rcpt_to."\n");
$sent = FALSE;
continue;
}

if ($this->smtp_send($this->host_name, $mail_from, $rcpt_to, $header, $body))
{
$this->log_write("E-mail has been sent to <".$rcpt_to.">\n");
}
else
{
$this->log_write("Error: Cannot send email to <".$rcpt_to.">\n");
$sent = FALSE;
}

fclose($this->sock);

$this->log_write("Disconnected from remote host\n");
}

return $sent;
}

/* Private Functions */
function smtp_send($helo, $from, $to, $header, $body = "")
{
if (!$this->smtp_putcmd("HELO", $helo))
{

return $this->smtp_error("sending HELO command");
}

#auth
if($this->auth)
{
if (!$this->smtp_putcmd("AUTH LOGIN", base64_encode($this->user)))
{
return $this->smtp_error("sending HELO command");
}

if (!$this->smtp_putcmd("", base64_encode($this->pass)))
{
return $this->smtp_error("sending HELO command");
}
}

#
if (!$this->smtp_putcmd("MAIL", "FROM:<".$from.">"))
{
return $this->smtp_error("sending MAIL FROM command");
}

if (!$this->smtp_putcmd("RCPT", "TO:<".$to.">"))
{
return $this->smtp_error("sending RCPT TO command");
}

if (!$this->smtp_putcmd("DATA"))
{
return $this->smtp_error("sending DATA command");
}

if (!$this->smtp_message($header, $body))
{
return $this->smtp_error("sending message");
}

if (!$this->smtp_eom())
{
return $this->smtp_error("sending <CR><LF>.<CR><LF> [EOM]");
}

if (!$this->smtp_putcmd("QUIT"))
{
return $this->smtp_error("sending QUIT command");
}

return TRUE;
}

function smtp_sockopen($address)
{
if ($this->relay_host == "")
{
return $this->smtp_sockopen_mx($address);
}
else
{
return $this->smtp_sockopen_relay();
}
}

function smtp_sockopen_relay()
{
$this->log_write("Trying to ".$this->relay_host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($this->relay_host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Error: Cannot connenct to relay host ".$this->relay_host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
return FALSE;
}

$this->log_write("Connected to relay host ".$this->relay_host."\n");
return TRUE;
}

function smtp_sockopen_mx($address)
{
$domain = ereg_replace("^.+@([^@]+)$", "\1", $address);
if (!@getmxrr($domain, $MXHOSTS))
{
$this->log_write("Error: Cannot resolve MX \"".$domain."\"\n");
return FALSE;
}

foreach ($MXHOSTS as $host)
{
$this->log_write("Trying to ".$host.":".$this->smtp_port."\n");
$this->sock = @fsockopen($host, $this->smtp_port, $errno, $errstr, $this->time_out);
if (!($this->sock && $this->smtp_ok()))
{
$this->log_write("Warning: Cannot connect to mx host ".$host."\n");
$this->log_write("Error: ".$errstr." (".$errno.")\n");
continue;
}

$this->log_write("Connected to mx host ".$host."\n");
return TRUE;
}

$this->log_write("Error: Cannot connect to any mx hosts (".implode(", ", $MXHOSTS).")\n");
return FALSE;
}

function smtp_message($header, $body)
{
fputs($this->sock, $header."\r\n".$body);
$this->smtp_debug("> ".str_replace("\r\n", "\n"."> ", $header."\n> ".$body."\n> "));
return TRUE;
}

function smtp_eom()
{
fputs($this->sock, "\r\n.\r\n");
$this->smtp_debug(". [EOM]\n");
return $this->smtp_ok();
}

function smtp_ok()
{
$response = str_replace("\r\n", "", fgets($this->sock, 512));
$this->smtp_debug($response."\n");

if (!ereg("^[23]", $response))
{
fputs($this->sock, "QUIT\r\n");
fgets($this->sock, 512);
$this->log_write("Error: Remote host returned \"".$response."\"\n");
return FALSE;
}
return TRUE;
}

function smtp_putcmd($cmd, $arg = "")
{
if ($arg != "")
{
if($cmd=="")
$cmd = $arg;
else
$cmd = $cmd." ".$arg;
}
fputs($this->sock, $cmd."\r\n");
$this->smtp_debug("> ".$cmd."\n");
return $this->smtp_ok();
}

function smtp_error($string)
{
$this->log_write("Error: Error occurred while ".$string.".\n");
return FALSE;
}

function log_write($message)
{
$this->smtp_debug($message);
if ($this->log_file == "")
{
return TRUE;
}

$message = date("M d H:i:s ").get_current_user()."[".getmypid()."]: ".$message;
if (!@file_exists($this->log_file) || !($fp = @fopen($this->log_file, "a")))
{
$this->smtp_debug("Warning: Cannot open log file \"".$this->log_file."\"\n");
return FALSE;
}

flock($fp, LOCK_EX);
fputs($fp, $message);
fclose($fp);
return TRUE;
}

function strip_comment($address)
{
$comment = "\([^()]*\)";
while (ereg($comment, $address))
{
$address = ereg_replace($comment, "", $address);
}
return $address;
}

function get_address($address)
{
$address = ereg_replace("([ \t\r\n])+", "", $address);
$address = ereg_replace("^.*<(.+)>.*$", "\1", $address);
return $address;
}

function smtp_debug($message)
{
if ($this->debug)
{
echo $message;
}
}
}
?>

DEMO:TEST.PHP
<?php
require "smtp.php";
$smtpserver = "smtp.xxx.com";//SMTP伺服器
$smtpserverport =25;//SMTP伺服器埠
$smtpusermail = "[email protected]";//SMTP伺服器的用戶郵箱
$smtpemailto = "[email protected]";//發送給誰
$smtpuser = "xxxx";//SMTP伺服器的用戶帳號
$smtppass = "xxxx";//SMTP伺服器的用戶密碼
$mailsubject = "客戶反饋意見!";//郵件主題
$mailbody = "<h1>這是我的一個測試~~~</h1>";//郵件內容
$mailtype = "HTML";//郵件格式(HTML/TXT),TXT為文本郵件

$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp->debug = false;//是否顯示發送的調試信息
$return = ($smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype));
echo $return;
?>

H. 怎麼用php的mail函數發郵件

functionsendMail($to,$title,$content){

Vendor('PHPMailer.PHPMailerAutoload');
$mail=newPHPMailer();//實例化
$mail->IsSMTP();//啟用SMTP
$mail->Host=C('MAIL_HOST');//smtp伺服器的名稱(這里以QQ郵箱為例)
$mail->SMTPAuth=C('MAIL_SMTPAUTH');//啟用smtp認證
$mail->Username=C('MAIL_USERNAME');//你的郵箱名
$mail->Password=C('MAIL_PASSWORD');//郵箱密碼
$mail->From=C('MAIL_FROM');//發件人地址(也就是你的郵箱地址)
$mail->FromName=C('MAIL_FROMNAME');//發件人姓名
$mail->AddAddress($to,"尊敬的客戶");
$mail->WordWrap=50;//設置每行字元長度
$mail->IsHTML(C('MAIL_ISHTML'));//是否HTML格式郵件
$mail->CharSet=C('MAIL_CHARSET');//設置郵件編碼
$mail->Subject=$title;//郵件主題
$mail->Body=$content;//郵件內容
$mail->AltBody="";//郵件正文不支持HTML的備用顯示

$relt=$mail->Send();
if(!$relt){
writeLog('發送郵件錯誤,錯誤信息:'.$mail->ErrorInfo,1,'發送郵箱失敗');
}
return($relt);
}

這個是thinkphp版本的。

I. php如何發送郵件

php發送郵件,php發送電子郵件,使用php發送郵件,php如何發送郵件
方法/步驟
1
在實際項目開發中,我們經常需要得到用戶的反饋信息並及時回復。普通的留言板有一定的內容限制,而悉春郵件則能滿足這個需求。今天給大家演示一下怎麼利用PHP發送電子郵件。
2
1.首先我們需要一個用來發送電子郵件的文件的程序,也就是一個php文件,流行的phpmail有很多,今天以smtp.php為例來演示。


3
2.將其復制到你的項目文件內,具體路徑根據自己的實際情況,這里建了一個test文件,用來設置郵件參數,大家也可以自定義郵件參數文件。(PS:一般都是通過表單接受的)

4
3.smtp.php文件如圖所示,大家不需要管代碼,會用就行,有時間了也可以研究研究哈。

5
4.設置郵虧陸凳件參數,具體代碼如下:
//引入發送郵件類
require("smtp.php");

//使用163郵箱伺服器
$smtpserver="smtp.163.com";

//163郵箱伺服器埠
$smtpserverport=25;

//你的163伺服器郵箱賬號
$smtpusermail="@163.com";

//收件人郵箱
$smtpemailto="@qq.com";

//你的郵箱賬號(去掉@163.com)
$smtpuser="";//SMTP伺服器的用戶帳號

//你的郵箱密碼
$smtppass="";//SMTP伺服器的用戶密碼

6
5.設置郵件內容,代碼如下:
//郵件主題
$mailsubject="測試郵件發送";

//郵件內容
$mailbody="PHP+MySQL";

//郵件格式(HTML/TXT),TXT為文本郵件
$mailtype="TXT";

//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp=newsmtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);

//是否顯示發送的調試信息
$smtp->debug銷旅=TRUE;

//發送郵件
$smtp->sendmail($smtpemailto,$smtpusermail,$mailsubject,$mailbody,$mailtype);
刷新頁面後郵件發送,參數不出錯的話1分鍾左右即可發送成功。我在測試的時候沒有發送成功提示,自己登錄郵箱查看的,如圖所示,內容和上面設置的一樣。

J. 如何用php結合phpmailer發送郵件

步驟圖解教程demo和

phpmailer代碼包下載:

看這個博主的文章,新手也能實現php發送郵件:網頁鏈接

熱點內容
萬科海上傳奇二期 發布:2024-11-01 14:22:52 瀏覽:59
u盤文件夾是空的 發布:2024-11-01 14:19:57 瀏覽:402
python包含字元串 發布:2024-11-01 14:19:17 瀏覽:479
c語言的精華 發布:2024-11-01 14:19:02 瀏覽:588
steam截圖文件夾 發布:2024-11-01 14:18:59 瀏覽:613
ipad怎麼往安卓傳照片 發布:2024-11-01 14:18:19 瀏覽:508
我的電腦沒有文件夾選項 發布:2024-11-01 14:13:55 瀏覽:546
vb創建資料庫表 發布:2024-11-01 14:11:55 瀏覽:872
sql聯合表 發布:2024-11-01 14:03:25 瀏覽:962
linux編程gcc 發布:2024-11-01 14:02:41 瀏覽:705