0

我尝试将我的 php 邮件脚本设置为 SMTP 邮件脚本,因为我的托管服务提供商不允许在未经验证的情况下发送邮件。
我正在尝试将电子邮件从我的网站发送到我的 gmail 帐户。
我必须发送 SMTP 邮件,但我无法将该脚本转换为 SMTP 邮件表单。
下面是代码:

   <?php

$websitename="My site name"; 

$allowtypes=array("jpg", "png", "gif");
$myemail="muratcol@gmail.com"; // THIS IS THE MAIL ADDRESS THAT I TRY TO SEND
$priority="2"; 
$allowattach="1"; 
$max_file_size="1500";
$max_file_total="3000";
$submitvalue="Send"; 
$resetvalue="Reset";
$defaultsubject="No subject"; 
$use_subject_drop=false;
$subjects=array("Department 1", "Department 2", "Department 3");
$emails=array("dept_1@domain.com", "dept_2@domain.com", "dept_3@domain.com");
$thanksmessage="Thank you"; 
function get_ext($key) { 
    $key=strtolower(substr(strrchr($key, "."), 1));
    $key=str_replace("jpeg", "jpg", $key);
    return $key;
}

function phattach($file, $name, $boundary) {

    $fp=fopen($file, "r");
    $str=fread($fp, filesize($file));
    $str=chunk_split(base64_encode($str));
    $message="--".$boundary."\n";
    $message.="Content-Type: application/octet-stream; name=\"".$name."\"\n";
    $message.="Content-disposition: attachment; filename=\"".$name."\"\n"; 
    $message.="Content-Transfer-Encoding: base64\n";
    $message.="\n";
    $message.="$str\n";
    $message.="\n";

    return $message;
}

function clean_msg($key) {
    $key=str_replace("\r", "", $key);
    $key=str_replace("\n", "", $key);
    $find=array(
        "/bcc\:/i",
        "/Content\-Type\:/i",
        "/Mime\-Type\:/i",
        "/cc\:/i",
        "/to\:/i"
    );
  $key=preg_replace($find, "", $key);
  return $key;
}

$error="";
$sent_mail=false;

If($_POST['submit']==true) {
    extract($_POST, EXTR_SKIP);

        If(trim($yourname)=="") { 
            $error.="İsminizi giriniz!<br />";
        }

        If(trim($youremail)=="") { 
            $error.="E-Posta adresinizi giriniz!<br />";
        } Elseif(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/", $youremail)) {
            $error.="Wrong mail address.<br />";
        }

        If(trim($emailsubject)=="") {
            $emailsubject=$defaultsubject;
        }

        If(trim($yourmessage)=="") { 
            $error.="You didnt enter your message!<br />";
        }

        If($allowattach > 0) {

            If((array_sum($_FILES['attachment']['size'])) > ($max_file_total*1024)) {

                $error.="Max".$max_file_total."kb<br />";

            } Else {

                For($i=0; $i <= $allowattach-1; $i++) {

                    If($_FILES['attachment']['name'][$i]) {

                        If(!in_array(get_ext($_FILES['attachment']['name'][$i]), $allowtypes)) {

                            $error.= "Unvalid extension: ".$_FILES['attachment']['name'][$i]."<br />";

                        } Elseif(($_FILES['attachment']['size'][$i]) > ($max_file_size*1024)) {

                            $error.= "Picture so high : ".$_FILES['attachment']['name'][$i].";

                        } 

                    } 

                } 

            } 

        } 

    If($error) {

        $display_message=$error;

    } Else {

        If($use_subject_drop AND is_array($subjects) AND is_array($emails)) {
            $subject_count=count($subjects);
            $email_count=count($emails);

            If($subject_count==$email_count) {

                $myemail=$emails[$emailsubject];
                $emailsubject=$subjects[$emailsubject];

            } // If $subject_count

        } // If $use_subject_drop

        $boundary=md5(uniqid(time()));

        $headers="Return-Path: <".clean_msg($youremail).">\n";
        $headers.="From: ".clean_msg($yourname)." <".clean_msg($youremail).">\n";
        $headers.="X-Mailer: PHP/".phpversion()."\n";
        $headers.="X-Sender: ".$_SERVER['REMOTE_ADDR']."\n";
        $headers.="X-Priority: ".$priority."\n"; 
        $headers.="MIME-Version: 1.0\n";
        $headers.="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
        $headers.="This is a multi-part message in MIME format.\n";

        $message = "--".$boundary."\n";
        $message.="Content-Type: text/html; charset=\"utf-8\"\n";
        $message.="Content-Transfer-Encoding: quoted-printable\n";
        $message.="\n";
        $message.=clean_msg(nl2br(strip_tags($yourmessage)));
        $message.="\n";

        If($allowattach > 0) {

            For($i=0; $i <= $allowattach-1; $i++) {

                If($_FILES['attachment']['tmp_name'][$i]) {

                    $message.=phattach($_FILES['attachment']['tmp_name'][$i], $_FILES['attachment']['name'][$i], $boundary);

                } 

            } 

        } 
    $message.="--".$boundary."--\n";

    $adjunto_name=$_FILES['attachment']['name']; 
    $adjunto_type=$_FILES['attachment']['type']; 
    $adjunto_size=$_FILES['attachment']['size']; 
    $adjunto_temp=$_FILES['attachment']['tmp_name']; 

    if(is_uploaded_file($_FILES['attachment']['tmp_name'][0]) && is_uploaded_file($_FILES['attachment']['tmp_name'][1])){


        If(!mail($myemail, clean_msg($emailsubject), $message, $headers)) {

            Exit("Problem !!!\n");

        } Else {

            $sent_mail=true;

        }
}else{

    $error.="Please upload photo.";
    $display_message=$error;
}

} 

} 
?>
4

0 回答 0