以联系方式配置Mailhandler.php

时间:2015-07-24 15:01:50

标签: php email

我从TemplateMonster下载模板时遇到错误,但我正在设置部分,联系表单以发送电子邮件,但我收到了一条已发送的消息,但如果我在这里没有得到任何信息,请发送邮件muestor代码。

MailHandler.php

<?php
$owner_email='darksihart19@gmail.com';
//SMTP server settings  
$host = 'ssl://smtp.gmail.com';
$port = '465';//"587";
$username = 'test@gmail.com';
$password = 'test';

$subject='A message from your site visitor ';
$user_email='';    
$message_body='';
$message_type='html';

$max_file_size=50;//MB 
$file_types='/(doc|docx|txt|pdf|zip|rar)$/';
$error_text='something goes wrong';
$error_text_filesize='File size must be less than';
$error_text_filetype='Failed to upload file. This file type is not allowed. Accepted files types: doc, docx, txt, pdf, zip, rar.';

$private_recaptcha_key='6LeZwukSAAAAACmqrbLmdpvdhC68NLB1c9EA5vzU'; //localhost


$use_recaptcha=isset( $_POST["recaptcha_challenge_field"]) and isset($_POST["recaptcha_response_field"]);
$use_smtp=($host=='' or $username=='' or $password=='');
$max_file_size*=1048576;

if($owner_email=='' || $owner_email=='#' ){
    die('Attention, recipient e-mail is not set! Please define "owner_email" variable in the MailHanlder.php file.');
}

if(preg_match('/^(127\.|192\.168\.)/',$_SERVER['REMOTE_ADDR'])){
    die('Attention, contact form will not work locally! Please upload your template to a live hosting server.');
}

if($use_recaptcha){
    require_once('recaptchalib.php');
    $resp = recaptcha_check_answer ($private_recaptcha_key,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
    if (!$resp->is_valid){
        die ('wrong captcha');
    }
}

if(isset($_POST['name']) and $_POST['name'] != ''){$message_body .= '<p>Visitor: ' . $_POST['name'] . '</p>' . "\n" . '<br>' . "\n"; $subject.=$_POST['name'];}
if(isset($_POST['email']) and $_POST['email'] != ''){$message_body .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n" . '<br>' . "\n"; $user_email=$_POST['email'];}
if(isset($_POST['state']) and $_POST['state'] != ''){$message_body .= '<p>State: ' . $_POST['state'] . '</p>' . "\n" . '<br>' . "\n";}
if(isset($_POST['phone']) and $_POST['phone'] != ''){$message_body .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n" . '<br>' . "\n";}   
if(isset($_POST['fax']) and $_POST['fax'] != ''){$message_body .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n" . '<br>' . "\n";}
if(isset($_POST['message']) and $_POST['message'] != ''){$message_body .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";}  
if(isset($_POST['stripHTML']) and $_POST['stripHTML']=='true'){$message_body = strip_tags($message_body);$message_type='text';}try{
include "libmail.php";
$m= new Mail("utf-8");
$m->From($user_email);
$m->To($owner_email);
$m->Subject($subject);
$m->Body($message_body,$message_type);
//$m->log_on(true);

if(isset($_FILES['attachment'])){
    if($_FILES['attachment']['size']>$max_file_size){
        $error_text=$error_text_filesize . ' ' . $max_file_size . 'bytes';
        die($error_text);           
    }else{          
        if(preg_match($file_types,$_FILES['attachment']['name'])){
            $m->Attach($_FILES['attachment']['tmp_name'],$_FILES['attachment']['name'],'','attachment');
        }else{
            $error_text=$error_text_filetype;
            die($error_text);               
        }
    }       
}
if(!$use_smtp){
    $m->smtp_on( $host, $username, $password, $port);
}

if($m->Send()){
    die('success');
}   }catch(Exception $mail){
die($mail);}?>

如果我只发出发送邮件的地址,但如果我用用户名和密码设置所有内容,则不会显示我的电子邮件SMTP服务器我收到错误消息!但它显示我的代码没有任何内容出错或设置错误

1 个答案:

答案 0 :(得分:0)

请尝试使用 PHPMailer 。在此库中,您可以设置SMTPDebug参数,以帮助您处理邮件错误。示例在Github repo中。或者在IDE中启用Zend Debugger以查看出现了什么问题。