Вставить E-mail в php

Поддерживаю SMTP, много готовых классов можно найти который можно конектить куда угодно.
Хотя если использовать просто mail() может и это достаточно если письма только на личный ящик идут.

А какого вида сбой выводиться? Можно сделать проверку при запросе что бы брал только валидный почты, у меня напр. так сделанно в одном скрипте при рассылки.
 
  1. Уважаемые пользователи этого форума,подскажите пожалуйста как можно сделать форму обратной связи для сайта чтобы после отправки сообщения меня не выкидывало на главную страницу а чтобы оставался на странице с формой и мог отправить ещё и ещё сообщения после обновления страницы я оставался на странице с формой после её отправки......
  2. Как мне всё это сделать на php без ajxa,подскажите пожалуйста......
 
Можно обработчик повесить в один файл с формой, сделать проверку, типа такой:

PHP:
if (!empty($_POST['send']) {
    // Код отправки мыла
}

// А тут просто выводить форму.

Или, в обработчике, после отправки, делать переход на страницу с формой с помощью header
 
  • Заблокирован
  • #14
У меня почему то на mail агент почту не приходить приходиться яндекс почтой пользоваться мой код
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();


$address = "почта@yandex.ru";

$message = "".$mess."\nС уважением, ".$name."\nМой контактный телефон: ".$tel."";

@mail($address, $subject, $message, $headers);


?>
 
Ввиду сложностей с кодировками (а также попаданием писем в спам), я в последнее время перешел на отправку писем через smtp gmail.com при помощи класса phpmailer
Могу скинуть рабочий код, если интересует.


скинь плиз очень интересует такое решение ибо попадание в спам уже замучался!! мини инструкцию если не сложно по найтроки самого гмайла! спасибо ней!
 
  • Заблокирован
  • #16
Помойму на этом сервисе нужно урл сайта сюда добавить чтобы на майл спам не приходил Для просмотра ссылки Войди или Зарегистрируйся
 
пробывал
if (!empty($_POST['send']) {

}
вот этот код вставить в обработчик тогда пропадает форма через header не как не получалось ранее это сделать подскажите пожалуйста как ещё это можно сделать чтобы отправить сообщение и оставаться на странице с которой ведётся отправка...
 
пробывал
if (!empty($_POST['send']) {

}
вот этот код вставить в обработчик тогда пропадает форма через header не как не получалось ранее это сделать подскажите пожалуйста как ещё это можно сделать чтобы отправить сообщение и оставаться на странице с которой ведётся отправка...
если по простому - пост формы должен уходить непосредственно на обработчик и эта же страничка отрендерит респонс
 
PHP:
<?php

$websitename="Отправить сообщение";

$allowtypes=array("zip", "rar", "txt", "doc", "jpg", "png");

$myemail="scaltro@mail.ru";

$priority="3";

$allowattach="1";

$max_file_size="2048";

$max_file_total="2048";

$submitvalue=" Отправить ";

$resetvalue=" Сбросить ";

$defaultsubject="Нет темы";

$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="Сообщение отправлено.";


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);

     // Check the form for errors
     If(trim($yourname)=="") {
       $error.="Вы не ввели Ваше имя!<br />";
     }

     If(trim($youremail)=="") {
       $error.="Вы не ввели Ваш email!<br />";
     } Elseif(!preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/", $youremail)) {
       $error.="Неправильный email.<br />";
     }

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

     If(trim($yourmessage)=="") {
       $error.="Вы не ввели сообщение!<br />";
     }

     // Verify Attchment info
     If($allowattach > 0) {

       // Get the total size of all uploaded files
       If((array_sum($_FILES['attachment']['size'])) > ($max_file_total*1024)) {

         $error.="Максимальный размер всех файлов ".$max_file_total."kb<br />";

       } Else {

         //Loop through each of the files
         For($i=0; $i <= $allowattach-1; $i++) {

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

             //Check if the file type uploaded is a valid file type.
             If(!in_array(get_ext($_FILES['attachment']['name'][$i]), $allowtypes)) {

               $error.= "Неправильное расширение файлов: ".$_FILES['attachment']['name'][$i]."<br />";

             //Check the size of each file
             } Elseif(($_FILES['attachment']['size'][$i]) > ($max_file_size*1024)) {

               $error.= "Ваш файл: ".$_FILES['attachment']['name'][$i]." слишком большой.<br />";

             } // If in_array

           } // If Files

         } // For

       } // Else array_sum($_FILES['attachment']['size'])

     } // If Allowattach

   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
     $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
     $message = "--".$boundary."\n";
     $message.="Content-Type: text/html; charset=\"windows-1251\"\n";
     $message.="Content-Transfer-Encoding: quoted-printable\n";
     $message.="\n";
     $message.=clean_msg(nl2br(strip_tags($yourmessage)));
     $message.="\n";

     //Add attachments to message
     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);

         } //If $_FILES['attachment']['name'][$i]

       } //For

     } // If

     // End the message
     $message.="--".$boundary."--\n";

     // Send the completed message
     If(!mail($myemail, clean_msg($emailsubject), $message, $headers)) {

       Exit("An error has occured, please report this to the website administrator.\n");

     } Else {

       $sent_mail=true;

     }

   } // Else

} // $_POST


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title><?php echo $websitename; ?></title>

<style type="text/css">
   body{
     background-color:#FFFFFF;
     font-family: Verdana, Arial, sans-serif;
     font-size: 12pt;
     color: #000000;
   }

   .error_message{
     font-family: Verdana, Arial, sans-serif;
     font-size: 11pt;
     color: #FF0000;
   }

   .thanks_message{
     font-family: Verdana, Arial, sans-serif;
     font-size: 11pt;
     color: #000000;
   }

   a:link{
     text-decoration:none;
     color: #000000;
   }
   a:visited{
     text-decoration:none;
     color: #000000;
   }
   a:hover{
     text-decoration:none;
     color: #000000;
   }

   .table {
     border-collapse:collapse;
     border:1px solid #000000;
     width:500px;
   }

   .table_header{
     border:1px solid #070707;
     background-color:#C03738;
     font-family: Verdana, Arial, sans-serif;
     font-size: 11pt;
     font-weight:bold;
     color: #FFFFFF;
     text-align:center;
     padding:2px;
   }

   .attach_info{
     border:1px solid #070707;
     background-color:#EBEBEB;
     font-family: Verdana, Arial, sans-serif;
     font-size: 8pt;
     color: #000000;
     padding:4px;
   }


   .table_body{
     border:1px solid #070707;
     background-color:#EBEBEB;
     font-family: Verdana, Arial, sans-serif;
     font-size: 10pt;
     color: #000000;
     padding:2px;
   }

   .table_footer{
     border:1px solid #070707;
     background-color:#C03738;
     text-align:center;
     padding:2px;
   }

   input,select,textarea {
     font-family: Verdana, Arial, sans-serif;
     font-size: 10pt;
     color: #000000;
     background-color:#AFAEAE;
     border:1px solid #000000;
   }

   .copyright {
     border:0px;
     font-family: Verdana, Arial, sans-serif;
     font-size: 9pt;
     color: #000000;
     text-align:right;
   }

   form{
     padding:0px;
     margin:0px;
   }
</style>

<script type="text/javascript">
var error="";
e_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;

function Checkit(theform) {
   if(theform.yourname.value=="") {
     error+="Вы не ввели Ваше имя\n";
   }

   if(theform.youremail.value=="") {
     error+="Вы не ввели Ваш email\n";
   } else if(!e_regex.test(theform.youremail.value)) {
     error+="Неправильный email адрес\n";
   }

   if(theform.yourmessage.value=="") {
     error+="Вы не ввели Ваше сообщение\n";
   }

   if(error) {
     alert('**Неправильно заполнены следующие поля:**\n\n' + error);
     error="";
     return false;
   } else {
     return true;
   }
}
</script>

</head>
<body>
<?If($display_message) {?>

<div align="center" class="error_message"><b><?=$display_message;?></b></div>
<br />

<?}?>

<?If($sent_mail!=true) {?>

<form method="post" action="<?=$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" name="phmailer" onsubmit="return Checkit(this);">
<table align="center" class="table">
   <tr>
     <td colspan="2" class="table_header" width="100%"><?=$websitename;?></td>
   </tr>
   <?If($allowattach > 0) {?>
     <tr>
       <td width="100%" class="attach_info" colspan="2">
         <b>Допустимые типы вложений:</b> <?=implode($allowtypes, ", ");?><br />
         <b>Макс размер каждого файла:</b> <?=$max_file_size?>kb.<br />
         <b>Макс общий размер файлов:</b> <?=$max_file_total?>kb.
       </td>
     </tr>
   <?}?>

   <tr>
     <td width="30%" class="table_body">Ваше имя:</td>
     <td width="70%" class="table_body"><input name="yourname" type="text" size="30" value="<?=stripslashes(htmlspecialchars($yourname));?>" /><span class="error_message">*</span></td>
   </tr>
   <tr>
     <td width="30%" class="table_body">Ваш Email:</td>
     <td width="70%" class="table_body"><input name="youremail" type="text" size="30" value="<?=stripslashes(htmlspecialchars($youremail));?>" /><span class="error_message">*</span></td>
   </tr>
   <tr>
     <td width="30%" class="table_body">Тема:</td>
     <td width="70%" class="table_body">

       <?If($use_subject_drop AND is_array($subjects)) {?>
           <select name="emailsubject" size="1">
             <?while(list($key,$val)=each($subjects)) {?>

               <option value="<?=intval($key);?>"><?=htmlspecialchars(stripslashes($val));?></option>

             <?}?>
           </select>


       <?} Else {?>

         <input name="emailsubject" type="text" size="30" value="<?=stripslashes(htmlspecialchars($emailsubject));?>" />

       <?}?>

     </td>
   </tr>

   <?For($i=1;$i <= $allowattach; $i++) {?>
     <tr>
       <td width="30%" class="table_body">Вложить файл:</td>
       <td width="70%" class="table_body"><input name="attachment[]" type="file" size="30" /></td>
     </tr>
   <?}?>

   <tr>
     <td colspan="2" width="100%" class="table_body">Ваше сообщение:<span class="error_message">*</span><br />
       <div align="center">
         <textarea name="yourmessage" rows="8" cols="60"><?=stripslashes(htmlspecialchars($yourmessage));?></textarea>
       </div>
     </td>
   </tr>
   <tr>
     <td colspan="2" width="100%" class="table_footer">
       <input type="hidden" name="submit" value="true" />
       <input type="submit" value="<?=$submitvalue;?>" /> &nbsp;
       <input type="reset" value="<?=$resetvalue;?>" />
     </td>
   </tr>
</table>
</form>

<?} Else {?>

   <div align="center" class="thanks_message"><?=$thanksmessage;?></div>
   <br />
   <br />

<?}
//Please leave this here.. It's very small and non-obtrusive. ?>
<table class="table" style="border:0px;" align="center">

</table>
</body>
</html>


форма и отпарвка в одном файле. уже не однократно выкладывалось на форуме!
 
отправляет но я опять на главной после отправки а нужно чтобы отправило и вновь выдало форму на последней странице этого не происходит почему???
 
Назад
Сверху