2012-04-10 17 views
0

ではSMTPで作業していないこれは私のコードです:HTML形式のメールはPHP

<?php 

function smtp_mail($from, $to, $subject, $message, $headers="", $params=array()) { 
    $errno = ""; 
    $errstr = ""; 
    $smtpConnect = fsockopen("mail2.allramhosting.com", "25", $errno, $errstr, 20); 


    if (!empty($smtpConnect)) { 

     if ($params['use_html']) { 
      $extra_headers .= "MIME-Version: 1.0\nContent-Type: text/html; charset=\"utf-8\"\nContent-Transfer-Encoding: 7bit\n"; 
     } 
     $headers = "To: " . $to . "\nFrom: " . $from . "\nSubject: " . $subject . "\nDate: " . date('r') . "\n" . $extra_headers . $headers; 

     if (substr($headers, -1) == "\n") $headers = substr($headers, 0, -1); // Our last character should not be newline 

     //fputs($smtpConnect,"AUTH LOGIN" . $newLine); 
     //$smtpResponse = fgets($smtpConnect, 515); 
     //fputs($smtpConnect, base64_encode($username) . $newLine); 
     //$smtpResponse = fgets($smtpConnect, 515); 
     //fputs($smtpConnect, base64_encode($password) . $newLine); 
     //$smtpResponse = fgets($smtpConnect, 515); 
     fputs($smtpConnect, "HELO networkssms.com\r\n"); 
     fputs($smtpConnect, "MAIL FROM: " . $from . "\r\n"); 
     fputs($smtpConnect, "RCPT TO: " . $to . "\r\n"); 
     fputs($smtpConnect, "DATA\r\n"); 
     fputs($smtpConnect, $headers . "\r\n\r\n"); 
     fputs($smtpConnect, $message . "\r\n.\r\n"); // send message and finish 
     fputs($smtpConnect,"QUIT" . $newLine); 
     fclose($smtpConnect); 
     return true; 
    } 
    return false; 
} 




$params['use_html'] = "yes"; 

$user_subject = "Ticket - Budget Notification"; 
$user_part = '<html><body>'; 
$user_part .= '<div style="background-color: #EEEEEE;border-bottom: 1px solid #DCDCDC;padding: 10px 10px 20px;width: 500px; float:left;font-size:12px;font-weight:bold;">'; 
$user_part1 = '<div style="width:500px;">'; 
$user_part1 .= '<div style="width:500px;background-color:#eeeeee;padding: 10px 0 20px;border-bottom:1px solid #dcdcdc;">'; 
$user_part1 .= '<div style="float:left;width:150px;color:#666666;margin-left:20px;font-size:12px;font-weight:bold;">'; 
$user_part1 .= '</div></div>'; 
$user_part1 .= '<div style="width:450px;background-color:#eeeeee;padding: 10px 0 20px;border-bottom:1px solid #dcdcdc; height:auto; float:left;font-size:12px;margin-left:50px; font-weight:bold;">'; 
$user_part3 = '</div></div></div>'; 
$user_part3 .= '</body></html>'; 
$user_center_part1 = '';  
$user_center_part = 'The following Tickets are reached its budget ,'; 
$user_center_part2='<div style="float:left;width:auto;color:#000000;font-size:12px;margin-left:75px; font-weight:bold; height:auto; margin-top:10px;">Ticket #10 reached 100% of its budget</div>'; 
$user_to = '[email protected]'; 
$user_center_part1 = 'Dear Admin ,'; 
$user_message = $user_part.$user_center_part1.$user_part1.$user_center_part.$user_center_part2.$user_part3; 

if (!smtp_mail("[email protected]", $user_to, $user_subject, $user_message,"",$params)){ 
    mail($user_to, $user_subject, $user_subject . "\n" . substr($user_message, 0, 158), "From: [email protected]\nX-PHP-Script: 1"); 
    //mail("[email protected]", $user_subject, $user_message ,"From: [email protected]\nX-PHP-Script: 1"); 
} 


?> 

私は自分のアカウントですべてのメールを得ることはありません。私はそれを正常に動作するか、HTMLコンテンツを使わないでシンプルなメールとしてそれを動作させます。

+0

あなたはまた、(メールとHTMLメールを送信することができます)機能 – Dion

+0

が、私はあなたがスパムでメールを取得したりしていないSMTP – Kichu

+0

CHKを使用して送信する必要が...ほとんどの場合、HTMLはspamフォルダに行くように強制します.... –

答えて

0

あなたはPEARのMail_MIMEようなもので、それを試してみましたか?

あなたはhttp://pear.php.net/manual/en/package.mail.mail-mime.example.php#15034を見て、SMTPサーバー情報($のsmtpinfo配列)を使用した例を試みることができます。代わりに、HTML形式の電子メールを送信するために、独自のカスタムの複雑な機能を使用しての

1

、私はではSwiftMailerのように十分にテストされ、文書ライブラリを使用することをお勧めいたします。

これは、使用するveryeasyです。あなたたとえば、あなたの場合にはそれができる:

$user_subject = "Ticket - Budget Notification"; 
/* ... */ 
$user_message = $user_part.$user_center_part1.$user_part1.$user_center_part.$user_center_part2.$user_part3; 

// then, send the mail 
require_once 'lib/swift_required.php'; 

// Create the Transport 
$transport = Swift_SmtpTransport::newInstance('mail2.allramhosting.com', 25); 

// Create the Mailer using your created Transport 
$mailer = Swift_Mailer::newInstance($transport); 

// Create the message 
$message = Swift_Message::newInstance() 
    ->setSubject($user_subject) 
    ->setFrom('[email protected]') 
    ->setTo($user_to) 
    ->addPart($user_message, 'text/html'); 

// Send the message 
$result = $mailer->send($message);