mail函数的header参数如下即可:
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";如果你用linux做调试,将 '\r\n' 换成 '\n'
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";如果你用linux做调试,将 '\r\n' 换成 '\n'
怎么才能发html格式的邮件,
还有html格式的邮件内容我写在那里?怎么谢谢,谢谢!
我用的这段代码:(也可以你给我一段代码,谢谢)
<?
/*****************************************
**MIME 邮件发送(2000.12)
**[email protected]
**
**Thanks to : Dan Potter and Tony
*****************************************/
//-------------------------------------
//类的调用方法
//-------------------------------------
//include("mime_mail_class.php");
//$message=new MIMEMail();
//$message->to="[email protected]";
//$message->subject="Hello!";
//$message->headers["Reply-To"]="[email protected]";
//$message->headers["From"]="[email protected]";
//$message->attachments[0]="images/flower.gif";
//$message->attachments[1]="document.zip";
//$message->disposition[0]="inline";
//$message->disposition[1]="attachment";
//$message->MIMEType[0]="image/gif";
//$message->MIMEType[1]="application/zip";
//$message->body="Thank you very much!";
//$message->CharSet="gb2312";
//$message->SendMail();
//
//说明:
//headers[]为自定义邮件头格式,可省略。
//disposition[]为附件的显示方式,默认为attachment
//MIMEType[]为附件文件的MIME类型,可以不指定,程序会自动判断。
//CharSet 为邮件字符编码 默认为gb2312
//------------------------------------- class MIMEMail
{
var $to;//收信人邮件地址
var $subject;//主题
var $headers;//邮件头信息
var $attachments;//附件
var $body;//正文
var $warning="这是一封MIME邮件的首部,如果以下部分无法读取,请与发信者联系!";//MIME 说明
var $boundary="--==thismimemailclassiswritedwithphpbyavatar==--";//分界符
var $MIMEType;//使用者指定的MIME类型
var $disposition;//指定附件方式:attachment(附加形式)或者inline(正文显示附件)
var $CharSet;//字符编码 //-------------------------------------
//定义初始值类型函数
//-------------------------------------
function MIMEMmail()
{
$this->to="";
$this->subject="";
$this->headers=array();
$this->attachments=array();
$this->body="";
$this->MIMEType=array();
$this->disposition=array();
$this->CharSet="";
}
//------------------------------------- //-------------------------------------
//取得附件的MIME类型
//-------------------------------------
function GetMIMEType($FileName)
{
$FileName=basename($FileName);
if(!strrchr($FileName,"."))
{
return("application/octet-stream");
}
$ext=strrchr($FileName,".");
switch($ext)
{
case ".gif":
return "image/gif";
break; case ".jpg":
return "image/jpeg";
break; case ".bmp":
return "image/bmp";
break; case ".png":
return "image/png";
break; case ".mp3":
return "audio/mpeg";
break; case ".mpga":
return "audio/mpeg";
break; case ".txt":
return "text/plain";
break; case ".html":
return "text/html";
break; case ".htm":
return "text/html";
break; case ".pdf":
return "application/pdf";
break; case ".zip":
return "application/zip";
break; case ".gz":
return "application/x-gzip";
break; case ".tar":
return "application/x-tar";
break; default:
return "application/octet-stream";
break;
}
}
//------------------------------------- //-------------------------------------
//发送邮件函数
//-------------------------------------
function SendMail()
{
$SendBody=$this->GetBody($this->body);
$SendHeaders=$this->GetHeaders($this->headers);
mail($this->to,$this->subject,$SendBody,$SendHeaders);
}
//------------------------------------- //-------------------------------------
//处理邮件头函数
//-------------------------------------
function GetHeaders($headers)
{
//处理使用者指定的邮件头.如:headers["Reply-To"],headers["X-Extra-Header"]
if(count($headers)>0)
{
reset($headers);
while(list($HeaderKey,$Headervalues)=each($headers))
{
$TempHeaders.=$HeaderKey.":".$Herdervalues."
";
}
} //有附件的MIME邮件头
if(count($this->attachments)>0)
{
$TempHeaders.="MIME-Version:1.0
";
$TempHeaders.="Content-Type:multipart/mixed;";
$TempHeaders.="boundary="".$this->boundary."" ";
$TempHeaders.=$this->warning."";
} return $TempHeaders;
}
//------------------------------------- //-------------------------------------
//处理邮件正文函数
//-------------------------------------
function GetBody($body)
{
//有附件的邮件正文部分
if(count($this->attachments)>0)
{
//如果没有指定字符编码,默认为gb2312
if(empty($this->CharSet))
{
$this->CharSet="gb2312";
}
$TempBody.="--".$this->boundary."
";
$TempBody.="Content-Type:text/plain;charset="".$this->CharSet."" ";
}
$TempBody.=$body.""; //处理附件
if(count($this->attachments)>0)
{
for($i=0;$i<count($this->attachments);$i++)
{
$TempBody.="--".$this->boundary."
"; //如果没有指定附件的MIME类型
if(empty($this->MIMEType[$i]))
{
$TempBody.="Content-Type:".$this->GetMIMEType($this->attachments[$i]).";";
$TempBody.="name="".basename($this->attachments[$i]).""
";
$TempBody.="Content-Transfer-Encoding:base64
"; //检查是否指定附件的显示方式,默认为attachment
if(empty($this->disposition))
{
$this->disposition="attachment";
}
$TempBody.="Content-disposition:".$this->disposition.";";
$TempBody.="filename="".basename($this->attachments[$i])."" ";
$TempBody.=$this->EncodeFile($this->attachments[$i])."
";
}
}
$TempBody.="--".$this->boundary."--
";
} return $TempBody;
}
//------------------------------------- //-------------------------------------
//对文件进行编码
//-------------------------------------
function EncodeFile($FileName)
{
if(is_readable($FileName))
{
$fp=fopen($FileName,"r");
$contents=fread($fp,filesize($FileName));
$encode=$this->ChunkSplit(base64_encode($contents));
fclose($fp);
} return $encode;
}
//------------------------------------- //-------------------------------------
//以每行76个字符分离邮件正文
//-------------------------------------
function ChunkSplit($string)
{
$StrLen=strlen($string);
while($StrLen>0)
{
if($StrLen>76)
{
$TempString.=substr($string,0,76)."
";
$string=substr($string,76);
$StrLen=$StrLen-76;
}
else
{
$TempString.=$string."
";
$StrLen=0;
}
} return $TempString;
}
//------------------------------------- }
?>
如下sample:<?$sendto = "[email protected]"; $message = "<html><font color=red>这是一封html格式的邮件!!</font></html>";
$subject = "test html mail"; $headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$myname." <".$myemail.">\r\n";
$headers .= "Reply-To: ".$myname." <$myreplyemail>\r\n";
mail($contactemail, $subject, $message, $headers);
?>
<?$sendto = "[email protected]"; $message = "<html><font color=red>这是一封html格式的邮件!!</font></html>";
$subject = "test html mail"; $headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: test <test>\r\n";
$headers .= "Reply-To: test <test>\r\n";
mail($sendto, $subject, $message, $headers);
?>
mail($sendto, $subject, $message, $headers); 说不多,
但我检查不错怎么错了,
请帮我找一下好吗?
我还想问一下,这段程序可以在本地机测试吧!(开着网)
如果我想让收信人看到发信的信箱,还需要加什么?
谢谢!
$sendto = "[email protected]";
$message = "<html><font color=red>这是一封html格式的邮件!!</font></html>";
$subject = "test html mail";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: test <test>\r\n";
$headers .= "Reply-To: test <test>\r\n";
mail($sendto, $subject, $message, $headers);
?>
你好,我还想问一下,我怎么把回信的地址改一下那?
上面的程序发的信,回信的地址总是<[email protected]>
谢谢!