php郵件附件文檔介紹內容(php 郵件)

本文目錄一覽:

求php 發送郵件的代碼?

?php

class Email {

//—設置全局變量

var $mailTo = “”; // 收件人

var $mailCC = “”; // 抄送

var $mailBCC = “”; // 秘密抄送

var $mailFrom = “”; // 發件人

var $mailSubject = “”; // 主題

var $mailText = “”; // 文本格式的信件主體

var $mailHTML = “”; // html格式的信件主體

var $mailAttachments = “”; // 附件

/* 函數setTo($inAddress) :用於處理郵件的地址 參數 $inAddress

為包涵一個或多個字串,email地址變量,使用逗號來分割多個郵件地址

默認返回值為true

**********************************************************/

function setTo($inAddress){

//–用explode()函數根據”,”對郵件地址進行分割

$addressArray = explode( “,”,$inAddress);

//–通過循環對郵件地址的合法性進行檢查

for($i=0;$icount($addressArray);$i++){ if($this-checkEmail($addressArray[$i])==false) return false; }

//–所有合法的email地址存入數組中

$this-mailTo = implode($addressArray, “,”);

return true; }

/**************************************************

函數 setCC($inAddress) 設置抄送人郵件地址

參數 $inAddress 為包涵一個或多個郵件地址的字串,email地址變量,

使用逗號來分割多個郵件地址 默認返回值為true

**************************************************************/

function setCC($inAddress){

//–用explode()函數根據”,”對郵件地址進行分割

$addressArray = explode( “,”,$inAddress);

//–通過循環對郵件地址的合法性進行檢查

for($i=0;$icount($addressArray);$i++){ if($this-checkEmail($addressArray[$i])==false) return false; }

//–所有合法的email地址存入數組中

$this-mailCC = implode($addressArray, “,”);

return true; }

/***************************************************

函數setBCC($inAddress) 設置秘密抄送地址 參數 $inAddress 為包涵一個或多

個郵件地址的字串,email地址變量,使用逗號來分割多個郵件地址 默認返回值為

true

******************************************/

function setBCC($inAddress){

//–用explode()函數根據”,”對郵件地址進行分割

$addressArray = explode( “,”,$inAddress);

//–通過循環對郵件地址的合法性進行檢查

for($i=0;$icount($addressArray);$i++)

{ if($this-checkEmail($addressArray[$i])==false)

return false;

}

//–所有合法的email地址存入數組中

$this-mailBCC = implode($addressArray, “,”);

return true;

}

/*****************************************************************

函數setFrom($inAddress):設置發件人地址 參數 $inAddress 為包涵郵件

地址的字串默認返回值為true

***************************************/

function setFrom($inAddress){

if($this-checkEmail($inAddress)){

$this-mailFrom = $inAddress;

return true;

} return false; }

/**********************

函數 setSubject($inSubject) 用於設置郵件主題參數$inSubject為字串,

默認返回的是true

*******************************************/

function setSubject($inSubject){

if(strlen(trim($inSubject)) 0){

$this-mailSubject = ereg_replace( “n”, “”,$inSubject);

return true; }

return false; }

/****************************************************

函數setText($inText) 設置文本格式的郵件主體參數 $inText 為文本內容默

認返回值為true

****************************************/

function setText($inText){

if(strlen(trim($inText)) 0){

$this-mailText = $inText;

return true; }

return false;

}

/**********************************

函數setHTML($inHTML) 設置html格式的郵件主體參數$inHTML為html格式,

默認返回值為true

************************************/

function setHTML($inHTML){

if(strlen(trim($inHTML)) 0){

$this-mailHTML = $inHTML;

return true; }

return false; }

/**********************

函數 setAttachments($inAttachments) 設置郵件的附件 參數$inAttachments

為一個包涵目錄的字串,也可以包涵多個文件用逗號進行分割 默認返回值為true

*******************************************/

function setAttachments($inAttachments){

if(strlen(trim($inAttachments)) 0){

$this-mailAttachments = $inAttachments;

return true; }

return false; }

/*********************************

函數 checkEmail($inAddress) :這個函數我們前面已經調用過了,主要就是

用於檢查email地址的合法性

*****************************************/

function checkEmail($inAddress){

return (ereg( “^[^@ ]+@([a-zA-Z0-9-]+.)+([a-zA-Z0-9-]{2}|net|com|gov|mil|org|edu|int)$”,$inAddress));

}

/*************************************************

函數loadTemplate($inFileLocation,$inHash,$inFormat) 讀取臨時文件並且

替換無用的信息參數$inFileLocation用於定位文件的目錄

$inHash 由於存儲臨時的值 $inFormat 由於放置郵件主體

***********************************************************/

function loadTemplate($inFileLocation,$inHash,$inFormat){

/* 比如郵件內有如下內容: Dear ~!UserName~,

Your address is ~!UserAddress~ */

//–其中”~!”為起始標誌”~”為結束標誌

$templateDelim = “~”;

$templateNameStart = “!”;

//–找出這些地方並把他們替換掉

$templateLineOut = “”; //–打開臨時文件

if($templateFile = fopen($inFileLocation, “r”)){

while(!feof($templateFile)){

$templateLine = fgets($templateFile,1000);

$templateLineArray = explode($templateDelim,$templateLine);

for( $i=0; $icount($templateLineArray);$i++){

//–尋找起始位置

if(strcspn($templateLineArray[$i],$templateNameStart)==0){

//–替換相應的值

$hashName = substr($templateLineArray[$i],1);

//–替換相應的值

$templateLineArray[$i] = ereg_replace($hashName,(string)$inHash[$hashName],$hashName);

}

}

//–輸出字符數組併疊加

$templateLineOut .= implode($templateLineArray, “”);

} //–關閉文件fclose($templateFile);

//–設置主體格式(文本或html)

if( strtoupper($inFormat)== “TEXT” )

return($this-setText($templateLineOut));

else if( strtoupper($inFormat)== “HTML” )

return($this-setHTML($templateLineOut));

} return false;

}

/*****************************************

函數 getRandomBoundary($offset) 返回一個隨機的邊界值

參數 $offset 為整數 – 用於多管道的調用 返回一個md5()編碼的字串

****************************************/

function getRandomBoundary($offset = 0){

//–隨機數生成

srand(time()+$offset);

//–返回 md5 編碼的32位 字符長度的字串

return ( “—-“.(md5(rand()))); }

/********************************************

函數: getContentType($inFileName)用於判斷附件的類型

**********************************************/

function getContentType($inFileName){

//–去除路徑

$inFileName = basename($inFileName);

//–去除沒有擴展名的文件

if(strrchr($inFileName, “.”) == false){

return “application/octet-stream”;

}

//–提區擴展名並進行判斷

$extension = strrchr($inFileName, “.”);

switch($extension){

case “.gif”: return “image/gif”;

case “.gz”: return “application/x-gzip”;

case “.htm”: return “text/html”;

case “.html”: return “text/html”;

case “.jpg”: return “image/jpeg”;

case “.tar”: return “application/x-tar”;

case “.txt”: return “text/plain”;

case “.zip”: return “application/zip”;

default: return “application/octet-stream”;

}

return “application/octet-stream”;

}

/**********************************************

函數formatTextHeader把文本內容加上text的文件頭

*****************************************************/

function formatTextHeader(){ $outTextHeader = “”;

$outTextHeader .= “Content-Type: text/plain;

charset=us-asciin”;

$outTextHeader .= “Content-Transfer-Encoding: 7bitnn”;

$outTextHeader .= $this-mailText. “n”;

return $outTextHeader;

} /************************************************

函數formatHTMLHeader()把郵件主體內容加上html的文件頭

******************************************/

function formatHTMLHeader(){

$outHTMLHeader = “”;

$outHTMLHeader .= “Content-Type: text/html;

charset=us-asciin”;

$outHTMLHeader .= “Content-Transfer-Encoding: 7bitnn”;

$outHTMLHeader .= $this-mailHTML. “n”;

return $outHTMLHeader;

}

/**********************************

函數 formatAttachmentHeader($inFileLocation) 把郵件中的附件標識出來

********************************/

function formatAttachmentHeader($inFileLocation){

$outAttachmentHeader = “”;

//–用上面的函數getContentType($inFileLocation)得出附件類型

$contentType = $this-getContentType($inFileLocation);

//–如果附件是文本型則用標準的7位編碼

if(ereg( “text”,$contentType)){

$outAttachmentHeader .= “Content-Type: “.$contentType. “;n”;

$outAttachmentHeader .= ‘ name=”‘.basename($inFileLocation). ‘”‘. “n”;

$outAttachmentHeader .= “Content-Transfer-Encoding: 7bitn”;

$outAttachmentHeader .= “Content-Disposition: attachment;n”;

$outAttachmentHeader .= ‘ filename=”‘.basename($inFileLocation). ‘”‘. “nn”;

$textFile = fopen($inFileLocation, “r”);

while(!feof($textFile)){

$outAttachmentHeader .= fgets($textFile,1000);

}

//–關閉文件 fclose($textFile);

$outAttachmentHeader .= “n”;

}

//–非文本格式則用64位進行編碼

else{ $outAttachmentHeader .= “Content-Type: “.$contentType. “;n”;

$outAttachmentHeader .= ‘ name=”‘.basename($inFileLocation). ‘”‘. “n”;

$outAttachmentHeader .= “Content-Transfer-Encoding: base64n”;

$outAttachmentHeader .= “Content-Disposition: attachment;n”;

$outAttachmentHeader .= ‘ filename=”‘.basename($inFileLocation). ‘”‘. “nn”;

//–調用外部命令uuencode進行編碼

exec( “uuencode -m $inFileLocation nothing_out”,$returnArray);

for ($i = 1; $i(count($returnArray)); $i++){

$outAttachmentHeader .= $returnArray[$i]. “n”;

}

} return $outAttachmentHeader;

}

/******************************

函數 send()用於發送郵件,發送成功返回值為true

************************************/

function send(){

//–設置郵件頭為空

$mailHeader = “”;

//–添加抄送人

if($this-mailCC != “”)

$mailHeader .= “CC: “.$this-mailCC. “n”;

//–添加秘密抄送人

if($this-mailBCC != “”)

$mailHeader .= “BCC: “.$this-mailBCC. “n”;

//–添加發件人

if($this-mailFrom != “”)

$mailHeader .= “FROM: “.$this-mailFrom. “n”;

//—————————郵件格式——————————

//–文本格式

if($this-mailText != “” $this-mailHTML == “” $this-mailAttachments == “”){

return mail($this-mailTo,$this-mailSubject,$this-mailText,$mailHeader);

}

//–html或text格式

else if($this-mailText != “” $this-mailHTML != “” $this-mailAttachments == “”){

$bodyBoundary = $this-getRandomBoundary();

$textHeader = $this-formatTextHeader();

$htmlHeader = $this-formatHTMLHeader();

//–設置 MIME-版本

$mailHeader .= “MIME-Version: 1.0n”;

$mailHeader .= “Content-Type: multipart/alternative;n”;

$mailHeader .= ‘ boundary=”‘.$bodyBoundary. ‘”‘;

$mailHeader .= “nnn”;

//–添加郵件主體和邊界

$mailHeader .= “–“.$bodyBoundary. “n”;

$mailHeader .= $textHeader;

$mailHeader .= “–“.$bodyBoundary. “n”;

//–添加html標籤

$mailHeader .= $htmlHeader;

$mailHeader .= “n–“.$bodyBoundary. “–“;

//–發送郵件

return mail($this-mailTo,$this-mailSubject, “”,$mailHeader);

}

//–文本加html加附件

else if($this-mailText != “” $this-mailHTML != “” $this-mailAttachments != “”){

$attachmentBoundary = $this-getRandomBoundary();

$mailHeader .= “Content-Type: multipart/mixed;n”;

$mailHeader .= ‘ boundary=”‘.$attachmentBoundary. ‘”‘. “nn”;

$mailHeader .= “This is a multi-part message in MIME format.n”;

$mailHeader .= “–“.$attachmentBoundary. “n”;

$bodyBoundary = $this-getRandomBoundary(1);

$textHeader = $this-formatTextHeader();

$htmlHeader = $this-formatHTMLHeader();

$mailHeader .= “MIME-Version: 1.0n”;

$mailHeader .= “Content-Type: multipart/alternative;n”;

$mailHeader .= ‘ boundary=”‘.$bodyBoundary. ‘”‘;

$mailHeader .= “nnn”;

$mailHeader .= “–“.$bodyBoundary. “n”;

$mailHeader .= $textHeader;

$mailHeader .= “–“.$bodyBoundary. “n”;

$mailHeader .= $htmlHeader;

$mailHeader .= “n–“.$bodyBoundary. “–“;

//–獲取附件值

$attachmentArray = explode( “,”,$this-mailAttachments);

//–根據附件的個數進行循環

for($i=0;$icount($attachmentArray);$i++){

//–分割 $mailHeader .= “n–“.$attachmentBoundary. “n”;

//–附件信息

$mailHeader .= $this-formatAttachmentHeader($attachmentArray[$i]);

}

$mailHeader .= “–“.$attachmentBoundary. “–“;

return mail($this-mailTo,$this-mailSubject, “”,$mailHeader);

}

return false;

}

}

?

如何使用PHP發送包含附件的電子郵件

通常需要把 附件 比如 aa.txt 做處理

然後 通過 fsockopen 打開 對方 郵件地址

通過 fwrite 把 附件內容 寫進對方的地址 郵件內容中

例如 下面這種 需要這麼處理

最下方 最長的那一段 實際上就是 附件的真實內容 也就是說 aa.txt裡邊的內容 是以這種方式傳送的 當然了這是編碼過以後的 結果

那麼在對方收到你的 郵件後 在讀取時 也是需要解碼 然後給你 看的

最終 解碼後 你看到的 結果 就是 aa.txt 下載打開後 裡邊就會有內容了

Content-Type: text/x-c++;

name=”=?utf-8?B?7JWE7IKs64us7JWE7IKs64us7ZWY64iF7LWc6rOg7Lu07Y2864uILnR4dCgzM0tCKQ==?=”

Content-Transfer-Encoding: base64

Content-Disposition: attachment;

filename=”=?utf-8?B?7JWE7IKs64us7JWE7IKs64us7ZWY64iF7LWc6rOg7Lu07Y2864uILnR4dCgzM0tCKQ==?=”

77u/7Jqw7Y6467KI7Zi4IOyngOuyiOyjvOyGjCDsl4bslaDquLA6JHJvYWRf

dHlwZT10cnVlOw0KDQoxLiDsnIjrj4Qg7ISc67KEIA0KLSBJUCA6IDExMC40

NS4xNDUuMTMwIChtc3RzY+uhnCDsoJHsho3tlZjsi5zrqbQg65Cp64uI64uk

LikNCmFkbWluaXN0cmF0b3IgLyBEa3RrZWtmIzQNCg0KRE5TOjIxOS4xNDku

MTk0LjU1DQpJRCA6IEFzYVByb2dyYW0gICAgIFBXIDogQVNBcHJvZyAgQXNh

UHJvZyAgYXNhcHJvZw0KRUtGS1FIRH4hDQoNCj09PT09PT09PT09PT09PT09

PT09PT09PT1kZWZpbmUv5qW36L6o6YWS6I2k5bSUSVAgDQoNCmRlZmluZSgn

X19EQl9NWVNRTF9ERUJVR19JUF9fJywnMjIyLjE2MS4zLjQsMTI0LjIzNC4x

MDAuODInKTsgc3Fs6K+t5Y+lDQoNCg0KZGVmaW5lKCdfX0RCX01ZU1FMX0RF

QlVHX0lQX0VYVF9fJywgJzIyMi4xNjEuMy40LDEyNC4yMzQuMTAwLjgyJyk7

DQoNCg0KDQoNCg0KJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10gLyoq6I2k5o2e

6aOY55aZIOWUseWdt+e7sOiKrSoqLw0KDQppZiAoJF9TRVJWRVJbJ1JFTU9U

RV9BRERSJ10gPT0gJzIyMi4xNjEuMy40J3x8JF9TRVJWRVJbJ1JFTU9URV9B

RERSJ10gPT0gJzIyMi4xNjkuMzMuNzQnKSB7DQoJJGluY2x1ZGVkX2ZpbGVz

ID0gZ2V0X2luY2x1ZGVkX2ZpbGVzKCk7DQoJZm9yZWFjaCgkaW5jbHVkZWRf

ZmlsZXMgYXMgJGZpbGVuYW1lKSB7DQoJCXByaW50ICRmaWxlbmFtZSAuICc8

YnI+JzsNCgl9DQp9ICAJCQkJaW5jbHVkZSBmaWxlDQotLS0tLS0tLS0tLS0t

我想用php發郵件,我想發html格式的,body應該怎麼寫呢,要發的文件是D:\local\website\proj\test\123.htm

你看看這個行么??

?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 CRLF.CRLF [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;

}

}

}

/********************************************************************************************/

//本類是針對qq的,如果你的qq有限沒有開啟stmp服務,請開啟。

$smtpserver = “smtp.qq.com”; //SMTP服務器

$smtpserverport =25; //SMTP服務器端口

$smtpusermail = “你的QQ號碼@qq.com”; //SMTP服務器的用戶郵箱

$smtpemailto = “924434008@qq.com”; //發送給誰

$smtpuser = “你的qq號碼@qq.com”; //SMTP服務器的用戶帳號

$smtppass = “你的qq密碼”; //SMTP服務器的用戶密碼 這裡是指你qq的密碼

$mailsubject = “測試郵件主題”; //郵件主題

$mailbody = “h1測試郵件的內容………………………………………../h1”; //郵件內容

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

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

$smtp-debug = false; //是否顯示發送的調試信息

if($smtp-sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype)==”1″){

echo “郵件發送成功!”;

}else{

echo “郵件發送失敗!”;

}

?

php如何發送郵件

?php

//定義邊界線

$boundary = uniqid( “” );

//生成郵件頭

$header = “From: $from\nContent-type: multipart/mixed;

boundary=\”$boundary\”\nX-Mailer:PHP\nX-Priority:3″;

//獲取附件文件的MIME類型

$mimetype = mime_content_type(‘test.zip’)

//獲取附件文件的名字

$attach = ‘test.zip’

//對附件文件進行編碼和切分

$fp = fopen($attach, “r”);

$content = fread($fp, filesize($attach));

$content = chunk_split( base64_encode($content) );

//生成郵件主體

$body =”

–$boundary

Content-type: text/plain; charset=iso-8859-1

Content-transfer-encoding: 8bit

$message

–$boundary

Content-Type: $mimeType; name=$filename

Content-Disposition: attachment; filename=$filename

Content-Transfer-Encoding: base64

$content

–$boundary–“;

//發送郵件

mail( $to, $subject, $body, $header );

?

PHP POP3如何獲取郵件附件內容

可以考慮使用正則表達式,例子代碼:

?php

$s=’——=_NextPart_001_0013_01CFED3C.C561B7D0– ——=_NextPart_000_0012_01CFED3C.C561B7D0 Content-Type: application/octet-stream; name=”aa.txt” Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=”aa.txt”‘;

if (preg_match(‘|filename=”([^”]+)”|’,$s,$r)) echo ‘文件名:’.$r[1];

?

請問附件是什麼? 還有在郵件上的具體信息

附件一般是伴隨郵件出現,個人理解就是郵件里表達不了或者需要對方確認的一些文件。附件: 發郵件時附加一個文件, 與郵件內容一起傳送至收件人.

一般附件不宜過大, 否則要麽傳送時間長, 要麽被拒收; 附件中最好是壓縮包, 而不是將播放文件(mp3,wma,rm)、可執行文件(exe,bat)等直接附加上去, 很容易被拒收或當垃圾郵件攔截.

發送步驟如下:1打開你的郵箱2.寫新郵件3.打開新郵件的窗口,有一排功能按鈕,其中有一個是添加附件4.點擊此按鈕,之後會出現一個對話框,瀏覽,找到你要發的附件,選擇確定5.待附件上傳成功,點擊發送即可。

同樣,如果需要預覽或者下載郵件,點擊郵件里的附件信息即可。

不同的郵箱對於附件的容量要求不一樣,你可以在網上尋找!

原創文章,作者:ERETR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/330321.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ERETR的頭像ERETR
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python七年級內容用法介紹

    本文將從多個方面對Python七年級內容進行詳細闡述。 一、安裝Python 要使用Python進行編程,首先需要在計算機上安裝Python。Python可以在官網上免費下載。下載…

    編程 2025-04-29
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • Python獲取Flutter上內容的方法及操作

    本文將從以下幾個方面介紹Python如何獲取Flutter上的內容: 一、獲取Flutter應用數據 使用Flutter提供的Platform Channel API可以很容易地獲…

    編程 2025-04-28
  • Python少兒編程的學習內容

    Python被譽為是最適合新手入門的編程語言之一,它簡潔易懂,同時涵蓋了廣泛的編程知識。Python的少兒編程課程也因其易學性和實用性越來越受到家長和孩子們的歡迎。接下來我們將從多…

    編程 2025-04-28
  • Python生成PDF文檔

    Python是一門廣泛使用的高級編程語言,它可以應用於各種領域,包括Web開發、數據分析、人工智能等。在這些領域的應用中,有很多需要生成PDF文檔的需求。Python有很多第三方庫…

    編程 2025-04-28
  • 使用Python轉髮網頁內容

    Python是一種廣泛使用的編程語言,它在網絡爬蟲、數據分析、人工智能等領域都有廣泛的應用。其中,使用Python轉髮網頁內容也是一個常見的應用場景。在本文中,我們將從多個方面詳細…

    編程 2025-04-27
  • Python中提取指定字符後面的內容

    Python是一種強類型動態語言,它被廣泛應用於數據科學、人工智能、自動化測試、Web開發等領域。在Python中提取指定字符後面的內容是一個常見的需求。 一、split方法 Py…

    編程 2025-04-27
  • Python批量爬取網頁內容

    Python是當前最流行的編程語言之一,其在數據處理、自動化任務、網絡爬蟲等場景下都有廣泛應用。本文將介紹如何使用Python批量爬取網頁內容,方便獲取大量有用的數據。 一、安裝所…

    編程 2025-04-27
  • Python讀取輸入內容用法介紹

    Python是一種腳本語言,讓開發人員可以輕鬆編寫腳本以解決實際問題。其中一個重要的實踐就是讀取輸入內容以便程序進行下一步操作。本文將從多個方面詳細闡述Python讀取輸入內容的方…

    編程 2025-04-27

發表回復

登錄後才能評論