Novahq.net Forum

Novahq.net Forum (https://novahq.net/forum/index.php)
-   phphq.Net Forums (https://novahq.net/forum/forumdisplay.php?f=277)
-   -   Sending email through SMPT? (https://novahq.net/forum/showthread.php?t=45912)

Tustaste 04-29-2011 07:38 PM

Sending email through SMPT?
 
Hello,

To prevent falling into the spam box

For phMailer.php

How do I send by SMTP?


Regards

Sorry, English is bad

Tustaste 05-06-2011 03:09 PM

PHP Code:

<?php


// This will show in the browsers title bar and at the top of the form.
$websitename="Your Website"

// Allowed file types. Please remember to keep the format of this array, add the file extensions you want
// WITHOUT the dot. Please also be aware that certain file types (such as exe) may contain malware.
$allowtypes=array("zip""rar""txt""doc""jpg""png""gif""bmp");

// What's your email address? Seperate email addresses with commas for multiple email addresses.
$myemail="your_email@domain.com";

// What priority should the script send the mail? 1 (Highest), 2 (High), 3 (Normal), 4 (Low), 5 (Lowest).
$priority="3"

// Should we allow visitors to attach files? How Many? 0 = Do not allow attachments,
// 1 = allow only 1 file to be attached, 2 = allow two files etc.
$allowattach="1"

// Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it,
// post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_size="1024";

// Maximum file size for all attachments combined in KB. MAKE SURE your php.ini can handel it,
// post_max_size, upload_max_filesize, file_uploads, max_execution_time!
// 2048kb = 2MB,       1024kb = 1MB,     512kb = 1/2MB etc..
$max_file_total="2048";

// Value for the Submit Button
$submitvalue=" Send Email "

// Value for the Reset Button
$resetvalue=" Reset Form ";

// Default subject? This will be sent if the user does not type in a subject
$defaultsubject="No Subject"

// Because many requested it, this feature will add a drop down box for the user to select a array of
// subjects that you specify below. 
// True = Use this feature, False = do not use this feature
$use_subject_drop=false;

// This is an array of the email subjects the user can pick from. Make sure you keep the format of
// this array or you will get errors.
// Look at <http://novahq.net/forum/showthread.php?t=38718> for examples on how to use this feature.
$subjects=array("Department 1""Department 2""Department 3");

// This is an array of the email addresses for the array above. There must be an email FOR EACH
// array value specified above. You can have only 1 department if you want.
// YOU MUST HAVE THE SAME AMMOUNT OF $subjects and $emails or this WILL NOT work correctly!
// The emails also must be in order for what you specify above!
// Seperate email addresses by a comma to send an email to multiple addresses.
$emails=array("dept_1@domain.com""dept_2@domain.com""dept_3@domain.com");

// This is the message that is sent after the email has been sent. You can use html here.
// If you want to redirect users to another page on your website use this:
// <script type=\"text/javascript\">window.location=\"http://www.YOUR_URL.com/page.html\";</script>
$thanksmessage="Thank you! Your email has been sent, we will respond shortly."

/*
//================================================================================
* ! ATTENTION !
//================================================================================
: Don't edit below this line.
*/

// Function to get the extension of the uploaded file.
function get_ext($key) { 
    
$key=strtolower(substr(strrchr($key"."), 1));
    
$key=str_replace("jpeg""jpg"$key);
    return 
$key;
}

// Function used to attach files to the message
function phattach($file$name$boundary) {
    
    
$fp=fopen($file"r");
    
$str=fread($fpfilesize($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;
}

//Little bit of security from people forging headers. People are mean sometimes :(
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;
}

// Initilize some variables
$error="";
$sent_mail=false;

// When the form is submitted
If($_POST['submit']==true) {
    
extract($_POSTEXTR_SKIP);
        
    require_once(
'../class.phpmailer.php');
    

        
// Check the form for errors
        
If(trim($yourname)=="") { 
            
$error.="You did not enter your name!<br />";
        }
        
        If(
trim($youremail)=="") { 
            
$error.="You did not enter your email!<br />";
        } Elseif(!
preg_match("/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/"$youremail)) {
            
$error.="Invalid email address.<br />";
        }

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

        If(
trim($yourmessage)=="") { 
            
$error.="You did not enter a message!<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.="The max size allowed for all your files is ".$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.= "Invalid file type for your file: ".$_FILES['attachment']['name'][$i]."<br />";
                            
                        
//Check the size of each file
                        
} Elseif(($_FILES['attachment']['size'][$i]) > ($max_file_size*1024)) {
                            
                            
$error.= "Your file: ".$_FILES['attachment']['name'][$i]." is to big.<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

        //Message

  
$message = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

  
$message->IsSMTP(); // telling the class to use SMTP

   // try {
  
$message->Host       "mail.yourdomain.com"// SMTP server
  
$message->SMTPDebug  2;                     // enables SMTP debug information (for testing)
  
$message->SMTPAuth   true;                  // enable SMTP authentication
  
$message->SMTPSecure "ssl";                 // sets the prefix to the servier
  
$message->Host       "smtp.gmail.com";      // sets GMAIL as the SMTP server
  
$message->Port       465;                   // set the SMTP port for the GMAIL server
  
$message->Username   "$myemail";  // GMAIL username
  
$message->Password   "yourpassword";            // GMAIL password
  
$message->AddReplyTo("$myemail"'First Last');
  
$message->AddAddress("$myemail"'John Doe');
  
$message->AddBCC("$youremail"'John Doe');
  
$message->SetFrom("$myemail"'First Last');
  
$message->AddReplyTo("$myemail"'First Last');
  
$message->Subject 'PHPMailer Test Subject via mail(), advanced';
  
$message->AltBody 'To view the message, please use an HTML compatible email viewer!'// optional - MsgHTML will create an alternate automatically
  
$message->MsgHTML("$yourmessage");
 
        
//Add attachments to message
        
If($allowattach 0) {
            
            For(
$i=0$i <= $allowattach-1$i++) {
                
                If(
$_FILES['attachment']['tmp_name'][$i]) {
                    
                    
$message->AddAttachment($_FILES['attachment']['tmp_name'][$i], $_FILES['attachment']['name'][$i]);

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

        
            
$sent_mail=true;
            
$message->Send();
            

    } 
// Else

// If($_POST['submit']==true) {

/*
//================================================================================
* Start the form layout
//================================================================================
:- Use the html below to customize the form.
*/
?>
<!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="tr_TR" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title><?php echo $websitename?> - Powered By phMailer</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+="You did not enter your name\n";
    }
    
    if(theform.youremail.value=="") {
        error+="You did not enter your email\n";
    } else if(!e_regex.test(theform.youremail.value)) {
        error+="Invalid email address\n";
    }
        
    if(theform.yourmessage.value=="") {
        error+="You did not enter your message\n";
    }
    
    if(error) {
        alert('**The form returned the following errors:**\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>Valid Attachment Types:</b> <?=implode($allowtypes", ");?><br />
                <b>Max size per file:</b> <?=$max_file_size?>kb.<br />
                <b>Max combined file size:</b> <?=$max_file_total?>kb.
            </td>
        </tr>
    <?}?>
    
    <tr>
        <td width="30%" class="table_body">Your Name:</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">Your 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">Subject:</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">Attach File:</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">Your Message:<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">
    <tr>
        <td><div class="copyright">&copy;<a href="http://www.phphq.net/?script=phMailer" target="_blank" title="Powered By phMailer 1.5.1 &lt;www.phphq.net&gt;">phMailer</a></div></td>
    </tr>
</table>
</body>
</html>

For PHPMaili SMTP code
Working...

Scott 05-07-2011 04:39 PM

Thanks for posting your solution :)


All times are GMT -5. The time now is 10:13 AM.

Powered by vBulletin®