带有附件的邮件不发送 HTML 邮件



我正在使用我找到的一个类来发送带有附件的邮件,但当我发送邮件时,它没有出现。我正在尝试发送一条HTML消息,但即使是常规消息也无法发送。无法发现错误。只有邮件为空时,电子邮件才会发送良好有人能看一下吗?代码:

<?php
class mailer{
    var $email_to;
    var $email_subject;
    var $headers;
    var $mime_boundary;
    var $email_message;
    //sets up variables and mail email
    function mailer($email_to,$email_subject,$email_message,$headers){
        $this->email_to=$email_to;
        $this->email_subject=$email_subject;
        $this->headers = $headers;
        $semi_rand = md5(time());
        $this->mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
        $this->headers .= "nMIME-Version: 1.0n" .
                "Content-Type: multipart/mixed;n" .
                " boundary="{$this->mime_boundary}"";
        $this->email_message .= "This is a multi-part message in MIME format.nn" .
                "--{$this->mime_boundary}n" .
                "Content-Type:text/html; charset="iso-8859-1"n".
                $email_message . "nn";
    }
    //adds attachment
    function attach($fileatt_type,$fileatt_name,$fileatt_content){
        $data = chunk_split(base64_encode($fileatt_content));
        $this->email_message .= "--{$this->mime_boundary}n" .
        "Content-Type: {$fileatt_type};n" .
        " name="{$fileatt_name}"n" .
        "Content-Transfer-Encoding: base64nn" .
        $data . "nn" .
        "--{$this->mime_boundary}n";
        unset($data);
        unset($file);
        unset($fileatt);
        unset($fileatt_type);
        unset($fileatt_name);
    }
    //send email
    function send(){
        return mail($this->email_to, $this->email_subject, $this->email_message, $this->headers);
    }

    //extra functions to make life easier
    //send email with imap
    function imap_send(){
        return imap_mail($this->email_to, $this->email_subject, $this->email_message, $this->headers);
    }
    //read file and add as attachment
    function file($file){
        $o=fopen($file,"rb");
        $content=fread($o,filesize($file));
        fclose($o);
        $name=basename($file);
        $type="application/octet-stream";
        $this->attach($type,$name,$content);
    }
    //read directory and add files as attachments
    function dir($dir){
        $o=opendir($dir);
        while(($file=readdir($o)) !==false){
            if($file != "." && $file != ".."){
                if(is_dir($dir."/".$file)){
                    $this->dir($dir."/".$file);
                }else{
                    $this->file($dir."/".$file);
                }
            }
        }
    }
}

消息填充:

    $message  = "<span style='color:red;'>NOTICE: test tesx..";
 $message .= "test text";
 $message .= "Please text test.</span>";
 $message .= "If you encounter any problems please contact at contact@shibby.co.il";

调用类:

      $mailer=new mailer($mail_to,$subject,$message,"From: $from_mail");
$mailer->file($fileName);
$test=$mailer->send();

用于发送带有附件的邮件。

<?php
//If there is no error, send the email
if(isset($_POST['ur_submit_button_name'])) {
$uname=$_POST['uname'];
$to = $_POST['mailid'];
$mobileno=$_POST['mobile'];
$location=$_POST['location'];
$from = "Yourname <Yourname@domainname.com>";
$subject = "This is the subject";
$separator = md5(time());
// carriage return type (we use a PHP end of line constant)
$eol = PHP_EOL;
// attachment name
$filename = "ip.zip";//store that zip file in ur root directory
$attachment = chunk_split(base64_encode(file_get_contents('ip.zip')));
// main header
$headers  = "From: ".$from.$eol;
$headers .= "MIME-Version: 1.0".$eol; 
$headers .= "Content-Type: multipart/mixed; boundary="".$separator.""";
// no more headers after this, we start the body! //
$body = "--".$separator.$eol;
$body .= "Content-Transfer-Encoding: 7bit".$eol.$eol;
$body .= "This is a MIME encoded message.".$eol;
// message
$body .= "--".$separator.$eol;
$body .= "Content-Type: text/html; charset="iso-8859-1"".$eol;
$body .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$body .= $message.$eol;
// attachment
$body .= "--".$separator.$eol;
$body .= "Content-Type: application/octet-stream; name="".$filename.""".$eol; 
$body .= "Content-Transfer-Encoding: base64".$eol;
$body .= "Content-Disposition: attachment".$eol.$eol;
$body .= $attachment.$eol;
$body .= "--".$separator."--";
// send message
if (mail($to, $subject, $body, $headers)) {
$mail_sent=true;
echo "mail sent";
} else {
$mail_sent=false;
echo "Error,Mail not sent";
}
}
?>

相关内容

  • 没有找到相关文章

最新更新