導航:首頁 > 編程語言 > php電子郵件格式

php電子郵件格式

發布時間:2023-08-09 12:43:25

A. php怎麼通過郵件的方式發送一封URL帶參數的地址的郵件

思想:

通過str_replace來替換掉參數的位置。

//設$content為郵件內容
$content=<<<EOF
<palign="center"><ahref='https://www.m78.co/get.php?code=$code'>Clickmetogetyoghurt!</a><br>
</p>
EOF;
//設$str為被替換的字元串
//設$code為替換字元串,現在要替換掉$content中的"$code"為真正的變數$code。
$str='$code';
$code=$_GET['code'];
$content=str_replace($str,$code,$content);
//最終就可以實現發送一封URL帶參數郵件的效果了

總結:

此種情況的確比較特殊,但我們平常還是應該多補習一下PHP的函數,在實戰中發揮。

關於我:

B. 使用php 怎麼發送郵件

你這個是連接的郵件伺服器出錯了。
估計你本地應該沒有裝郵件伺服器吧,一般都會用第三方的郵件伺服器,如smtp.163.com,
去下載個phpmailer,從裡面把class.phpmailer.php提取出來,用很好用的。

C. php判斷某字元串是否符合電子郵件格式的正則表達式

你好!
如下。function is_email($email){
return strlen($email) > 6 && preg_match(「/^[\w\-\.]+@[\w\-]+(\.\w+)+$/「,$email);
}謝謝,望採納

D. 用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 "發送成功!";
*/
?>

E. php中自動發送郵件的函數

全部代碼如下:

PhpMailer.php
代碼如下:
<?php
/************************************************
* 有身份驗證的電子郵件發送類(PHP)
* 使用本類發送郵件需要一個SMTP伺服器地址以及一個合法帳號
* 如163的SMTP地址為:smtp.163.split.netease.com
* 合法帳號可以通過隨意注冊一個免費信箱來獲得。
* 改編 一起PHP技術聯盟 www.17php.com [email protected]
* 本類的SMTP協議實現部分借鑒了其他開發者的成果,一並致謝。
* 2007.11 歡迎使用
***********************************************/
class PhpMailer{
var $smtpHost;
var $smtpUser;
var $smtpPass;
var $mailFrom;
/* 郵件正文的格式,默認支持HTML代碼
* 可選項 plain :文本格式
* html :HTML格式
*/
var $contentType = "html";
var $errMsg = '';
/**
* 3參數構造器
* @param String $host SMTP伺服器
* @param String $user 帳號名
* @param String $pass 密碼
* 無返回值
*/
function __construct($host,$user,$pass){
$this->smtpHost = $host;
$this->smtpUser = $user;
$this->smtpPass = $pass;
$this->mailFrom = $this->smtpUser;
}
/**
* 發送郵件
* @param String $addr 收件人的E-mail地址
* @param String $fromName 顯示的發件人姓名
* @param String $title 郵件標題
* @param String $content 郵件正文
* 返回 布爾型:成功返回true,否則返回false
*/
function send($addr,$fromName,$title,$content){
$headers = "Content-Type: text/".$this->contentType."; charset=\"gb2312\"
Content-Transfer-Encoding: base64";
$lb="
";
$hdr = explode($lb,$headers);
if($content){
$bdy = preg_replace("/^./","..",explode($lb,$content));
}
$smtp = array(
array("EHLO hello".$lb,"220,250","EHLO error: "),
array("AUTH LOGIN".$lb,"334","AUTH error:"),
array(base64_encode($this->smtpUser).$lb,"334","AUTHENTIFICATION error : "),
array(base64_encode($this->smtpPass).$lb,"235","AUTHENTIFICATION error : ")
);
$smtp[] = array("MAIL FROM: <".$this->mailFrom.">".$lb,"250","MAIL FROM error: ");
$smtp[] = array("RCPT TO: <".$addr.">".$lb,"250","RCPT TO error: ");
$smtp[] = array("DATA".$lb,"354","DATA error: ");
$smtp[] = array("From: ".$fromName.$lb,"","");
$smtp[] = array("To: ".$addr.$lb,"","");
$smtp[] = array("Subject: ".$title.$lb,"","");
foreach($hdr as $h) {
$smtp[] = array($h.$lb,"","");
}
$smtp[] = array($lb,"","");
if($bdy) {
foreach($bdy as $b) {
$smtp[] = array(base64_encode($b.$lb).$lb,"","");
}
}
$smtp[] = array(".".$lb,"250","DATA(end)error: ");
$smtp[] = array("QUIT".$lb,"221","QUIT error: ");
//打開SOCKET
$fp = @fsockopen($this->smtpHost, 25);
if (!$fp) $this->errMsg = "<b>錯誤:</b> 無法連接到 ".$this->smtpHost."";
while($result = @fgets($fp, 1024)){
if(substr($result,3,1) == " ") { break; }
}
foreach($smtp as $req){
@fputs($fp, $req[0]);
if($req[1]){
while($result = @fgets($fp, 1024)){
if(substr($result,3,1) == " ") { break; }
};
if (!strstr($req[1],substr($result,0,3))){
$this->errMsg.=$req[2].$result."";
}
}
}
@fclose($fp);
if($this->errMsg ==''){
return true;
}else{
return false;
}
}
}
?>

這個類文件對郵件發送操作進行了封裝,使用時不需要做任何更改。只需要在需要發送郵件的程序中包含即可。下面是一個使用的例子:

example.php
代碼如下:

<?php
/******************************************
* PhpMailer類使用方法演示程序
******************************************/
require_once('PhpMailer.php');
$test =new PhpMailer("smtp.xxx.com","[email protected]","yourpassword");
$send =$test->send("[email protected]","一起PHP","郵件標題","郵件內容(支持HTML)");

if($send){
echo "發送成功。";
}else{
echo "發送失敗。錯誤信息:".$test->errMsg;
}
?>

注釋:

$test = new PhpMailer(參數1,參數2,參數3)

創建類對象。三個參數為必填。分別表示 SMTP伺服器地址、用戶名、密碼(用戶名為完整的郵件地址格式)。
如使用163的SMTP: smtp.163.split.netease.com 用戶名[email protected] 密碼 123456。

$send = $test->send(參數1,參數2,參數3,參數4)

調用 send()方法發送郵件,四個參數為必填。分別表示收信人地址、發信人姓名、郵件標題、郵件正文。
$send接收返回結果。發送成功返回true,失敗返回false。並將失敗原因存放在errMsg變數中。

閱讀全文

與php電子郵件格式相關的資料

熱點內容
程序員主動離職和被裁員哪個好 瀏覽:790
360命令行 瀏覽:726
程序員騙色 瀏覽:668
cisco2950重啟命令 瀏覽:459
加密貨幣區塊鏈可以增發嗎 瀏覽:290
黃龍公式源碼 瀏覽:773
linux系統ftp伺服器 瀏覽:321
山西配電伺服器機櫃雲主機 瀏覽:452
量化選股模型公式源碼 瀏覽:9
龍卡購車分期怎麼綁app 瀏覽:779
python讀取bios信息 瀏覽:113
程序員老爸初體驗 瀏覽:729
aes加密後長什麼樣子 瀏覽:978
語言有編譯器嗎 瀏覽:31
解壓聲控怎麼調大音量 瀏覽:216
纏論中的高精度畫筆源碼 瀏覽:824
通用計算型雲伺服器 瀏覽:620
程序員手機分享 瀏覽:296
pdfsmart 瀏覽:425
nginx部署php 瀏覽:666