Friendship OkayCMSとSMTP用モジュール

メールサービスが厳格なポリシーに切り替わった後、多くの顧客がオンラインストアからの手紙が少なくともスパムに該当することを訴え始めました。最悪の場合、ホスティングは単に手紙をブロックし、クライアントに送信しません。 この点で、人気のあるPHPMailerライブラリをサイトに固定し始めました。これにより、メールの送信を柔軟に構成できます。 判明したように、単純なCMSのフレームワークでは、このライブラリは、すべてのシステムコントローラーを含むフォルダーよりも多くのファイルを含んでいるため、「ミニモンスター」のように見えます。



その結果、このビジネスをOKシステムに接続するためのアルゴリズムを作成しました。



したがって、ステップ番号を1回:PHPMailerライブラリーをgitaからダウンロードします。

ステップ2:ライブラリフォルダーをシステム自体のapiフォルダーにロードし、接続します。



これを行うには、次の操作を行う必要があります。



Notify.phpクラスで、ライブラリを次のように接続します。



require('PHPMailer/class.phpmailer.php'); include('PHPMailer/class.smtp.php');
      
      





その後、標準メール機能を次のように変更します。



 public function SMTP($to, $subject, $message,$headers){ $mail = new PHPMailer(); $mail->IsSMTP(); // telling the class to use SMTP $mail->Host = ''.$this->settings->smtp_server.''; // SMTP server $mail->SMTPDebug = 0; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Port = $this->settings->smtp_port; // set the SMTP port for the GMAIL server $mail->Username = ''.$this->settings->smtp_user.''; // SMTP account username $mail->Password = ''.$this->settings->smtp_pass.''; // SMTP account password $mail->SetFrom($this->settings->smtp_user, $this->settings->user_pseudo); $mail->AddReplyTo($this->settings->smtp_user,$this->settings->user_pseudo); $mail->Subject = $subject; $mail->MsgHTML($message); $mail->addCustomHeader("MIME-Version: 1.0\n"); $recipients = explode(',',$to); if(!empty($recipients)){ foreach($recipients as $i=>$r){ $mail->AddAddress($r); } } else{ $mail->AddAddress($to); } if(!$mail->Send()) { @file_put_contents('error_log.txt',$mail->ErrorInfo); } } function email($to, $subject, $message, $from = '', $reply_to = '') { $headers = "MIME-Version: 1.0\n" ; $headers .= "Content-type: text/html; charset=UTF-8; \r\n"; $headers .= "From: $from\r\n"; if(!empty($reply_to)) $headers .= "reply-to: $reply_to\r\n"; $subject = "=?utf-8?B?".base64_encode($subject)."?="; if($this->settings->use_smtp){ $this->SMTP($to, $subject, $message, $headers); } else{ @mail($to, $subject, $message, $headers); } }
      
      





そして実際、パフォーマンスのパートは準備ができています。 ここでは、管理者が自分で送信方法を切り替えることができるif構造の形式でレギュレータが追加されます。これはメール機能またはSMTPプロトコルのいずれかです。



その後、管理部分を「仕上げ」、フィールドを追加します。



バックエンド/ design / htmlフォルダーに移動し、settings.tplファイルを開きます。このファイルの最後に次のコードを追加します。



 <div class="block layer"> <h2> SMTP </h2> <ul> <li> <label class="property" >SMTP </label> <select name="use_smtp"> <option value="1" {if $settings->use_smtp == 1}selected=""{/if}></option> <option value="0" {if $settings->use_smtp == 0}selected=""{/if}></option> </select> <label class="property" >SMTP Server</label> <input name="smtp_server" class="okay_inp" value="{$settings->smtp_server}" type="text" /> <label class="property" >SMTP Port</label> <input name="smtp_port" class=" okay_inp " value="{$settings->smtp_port}" type="text" /> <label class="property" >SMTP </label> <input name="smtp_user" class=" okay_inp " value="{$settings->smtp_user}" type="text" /> <label class="property" >SMTP </label> <input name="smtp_pass" class=" okay_inp " value="{$settings->smtp_pass}" type="text" /> <label class="property" > </label> <input name="user_pseudo" class=" okay_inp " value="{$settings->user_pseudo}" type="text" /> </li> </ul> </div>
      
      





その後、次のような外観になります。



そして、フィールドデータハンドラーをバックエンド/ SettingsAdmin.phpファイルに追加します



  $this->settings->smtp_server = $this->request->post('smtp_server'); $this->settings->smtp_port = $this->request->post('smtp_port'); $this->settings->smtp_user = $this->request->post('smtp_user'); $this->settings->smtp_pass = $this->request->post('smtp_pass'); $this->settings->use_smtp = $this->request->post('use_smtp'); $this->settings->user_pseudo = $this->request->post('user_pseudo');
      
      







ソフトウェアの部分はこれで終了しました。すべては問題ありませんが、このビジネスを立ち上げるには神経質な努力が必要な場合があります。



アクションの短いリストは次のとおりです。



1.ドメインのメールを登録します(たとえば、Yandexで)

2.ホスティング上のメールサービスのMXレコードを切り替える

3.サーバーの465番目のポートが開いているかどうかをホスティングから確認します。開いていない場合、レターを送信しても意味がありません。

4.管理パネルでユーザー名とパスワードを指定します

5.署名されたボックスを使用して、「署名された」送信者から手紙を送信します



All Articles