ホームページ バックエンド開発 PHPチュートリアル php を使用して添付ファイル付きメールを送信する - (PHPMailer を使用した例の分析)_PHP チュートリアル

php を使用して添付ファイル付きメールを送信する - (PHPMailer を使用した例の分析)_PHP チュートリアル

Jul 21, 2016 pm 03:12 PM
php phpmailer コード 使用 送信 コピー 事例分析 持っている 使用 Eメール 付録

コードをコピーします コードは次のとおりです:

/*PHPMailer は、メールを送信するための PHP 関数パッケージです。提供する機能は次のとおりです:
*. 電子メール送信時に複数の受信者、CC アドレス、BCC アドレス、返信アドレスを指定します
*. 8 ビット、base64、バイナリ、引用符付き印刷可能などの複数の電子メール エンコーディングをサポートします
*. SMTP 認証をサポートします
* .冗長 SMTP サーバーをサポート
*.添付ファイル付きの電子メールと Html 形式の電子メールをサポート
*.電子メール ヘッダーをカスタマイズ
*.電子メールへの画像の埋め込みをサポート
*.柔軟なデバッグ
* テスト済みの互換性のある SMTP サーバーには、Sendmail、qmail、 Postfix、Imail、Exchange など
*. どのプラットフォームでも実行可能

phpMailer は、送信メールアドレスと返信アドレス、メールの件名、リッチテキストコンテンツ、添付ファイルのアップロードなどを設定できる非常に強力な php メールクラスです。
公式ウェブサイト: http://phpmailer.worxware.com/
ダウンロードアドレス: http://code.google.com/a/apache-extras. org/p/phpmailer/downloads/list
*/
require_once(' include/PHPMailer/class.phpmailer.php'); //PHPMAILER クラスをインポートします
$mail = new PHPMailer(); //インスタンスを作成します
$mail - >文字セット
$mail -> SetLanguage('ch','include/PHPMailer/ language/') //言語の種類と言語ファイルが置かれているディレクトリを設定します。 /SMTP を使用して送信します
$mail -> //サーバーが SMTP 認証を必要とするかどうかを設定します
$mail -> //SMTP ホスト アドレス
$mail -> /SMTP ホスト ポート
$mail -> //送信者の EMAIL アドレス
$mail -> //送信者は SMTP ホストのユーザー名
$mail -> ; //送信者の名前
$mail -> //SMTP ホストの送信者のパスワード
$mail -> //メールの件名
$mail -> AltBody = 'text/html'; //メール本文がHTMLに対応していない場合のバックアップ表示を設定します
$mail -> Body = 'テストメールの内容 ';//メール本文を作成します
$mail - > IsHTML(true); // HTML メールです
$mail -> 相手のアドレスと名前を受け取ります
$mail -> ('chinajason2008#gmail.com','jasonxu') //受信者が返信するときに返信するアドレスと名前
$mail ->AddAttachment('include/ id.csv','att.csv'); /添付ファイルのパスと名前
if(!$mail -> Send()) //メールを送信
var_dump($mail -> ErrorInfo) // 送信されたエラーメッセージを確認してください

注: 追加する場合phpmailer で添付ファイルを作成する場合、添付ファイルのサフィックスを添付ファイル名に指定する必要があります。添付ファイルのサフィックスが指定されていない場合、デフォルトの添付ファイルのサフィックスは .txt になります。
例 $mail -> AddAttachment('include/id.csv','att');//添付ファイルのパスと名前
上記のように添付ファイルを追加して送信すると、最終的に受信する添付ファイルはatt.txt であること。
AddAttachment では、添付ファイルのエンコード方法と添付ファイルの種類を設定できます。たとえば、上記の添付ファイルの追加を
$mail ->AddAttachment('include/id.csv','att.csv',"binary", "text/comma - Separated-values");// 添付ファイルのパスと名前、
添付ファイルにはおそらくいくつかのエンコード方法があります: 8 ビット、base64、バイナリ、および quote-printable エンコードがサポートされています

MIME タイプCSV可
・application/octet-stream
・text/カンマ区切り値(推奨)
・text/csv
つまり、csv形式ファイルの添付ファイルの種類は上記3つのいずれかになります
簡単に適用できるように短縮バージョンにコンパイルされた、前のプロジェクトでの電子メール送信の例:


コードをコピーします コードは次のとおりです:

$body=$_smtp_body;
$mail=new PHPMailer();//PHPMailer インスタンスを取得します
//$mail->SMTPSecure='tls';
$mail->CharSet="utf-8" ; //エンコーディングを設定します
$mail->IsSMTP();//メール送信のSMTPメソッドを設定します
$mail->Host=$_smtp_server;//SMTPメールサーバーのアドレスを設定します
$mail- >Port= $_smtp_port;//メールサーバーのポートを設定します、デフォルトは25です
$mail->From=$_smtp_from_mail; //送信者のメールアドレスを設定します
$mail->FromName=$_smtp_from_name; //送信設定 相手の名前
$mail->Username=$_smtp_username;
$mail->Password=$_smtp_password;
$mail->AddAddress("$email","");//設定受信アドレス (パラメータ 1) と名前 (パラメータ 2)
$mail->SMTPAuth=true;//SMTP 認証を有効にする
$mail->Subject=$_smtp_subject;//メールのタイトルを設定します
// $mail->AltBody ="text/html";
$mail->Body=$body;//メールの内容
$mail->IsHTML(true);//内容がHTML形式かどうかを設定します
/ /$mail->WordWrap =50; // それぞれの文字数を設定しますline
//$mail->AddReplyTo("samzhang@tencent.com","samzhang"); $mail->Send()){//メールを送信
exit 'ok';
}else{
exit 'fail';
}


初めて PHPMailer を使用したとき、説明できない問題が発生したことをおそらく覚えています。そして私はオンラインで情報を探すのに多くの時間を費やし、最終的にそれらを解決しました。現時点ではサーバーPHP環境ではfsockopen関数を無効にできないとメールが送信できないと記憶していますが、解決策はあります。つまり、使い始めはいつも苦労するのですが、久しぶりなので具体的に何が変わったのかはよくわかりません。したがって、今後の利用の便宜と、この問題で困っている友人の便宜のために、現在使用している PHPMailer ディレクトリ ファイルをパッケージ化して CSDN にアップロードしてください。 PHPMailerのダウンロード: http://xiazai.jb51.net/201304/yuanma/PHPMailer_jb51net.rar
なお、その際に発生した問題の内容を以下に整理します

1. SMTPに接続できませんでした。ホスト
理由 1 : メール システムに必要な SMTP リクエストは異なりますが、すべて大文字が許可されます。NetEase や Tencent メールボックスなど、一部は小文字をサポートしません。 (実際にそうなるかどうかは試していませんが、いずれにせよ大文字に変更しても影響はありません)

解決策:


コードをコピーします コードは次のとおりです:
public function IsSMTP() {
$this->Mailer ='SMTP' // smtp ->SMTP を変更します。 、元々は小文字でしたが、現在は大文字になっています。
}

// メーラーを選択して送信しますswitch($this->Mailer) {

case 'sendmail':
return $this->SendmailSend($header, $body);
case 'SMTP':/ /同様に、smtp ->SMTP; を変更します。つまり、元々は小文字でしたが、現在は大文字になります。
return $this->SmtpSend($header, $body);
case 'mail':
デフォルト:
return $this->MailSend($header, $body);
}


2. : SMTP ホストに接続できませんでした

原因: 一部の仮想ホストまたはサーバーがセキュリティ上の理由から「fsockopen() 関数」をブロックしているため、電子メールを送信できません

解決策:

fsockopen関数を有効にする

まず、php.ini 内の以下の 2 つのセミコロンを削除します

;拡張子=php_sockets.dll

;拡張子=php_openssl.dll

fsockopen 関数を置き換えます

class.smtp.php ファイル内の fsockopen 関数を pfsockopen 関数に置き換えることができます

3. メール関数をインスタンス化できませんでした

理由:

設定されたパラメータが間違っています。Gmail を使用して基本的なテストを行ったので、他のパラメータを再度設定する必要があります。

解決策:

$mail->SMTPSecure = ‘tls’ //この文を追加するだけです

注: 私はこの種のエラーに遭遇したことがないため、上記の例ではこのコンテンツにコメントを追加しました。この種のエラーが発生した場合は、この文を試してみてください。

http://www.bkjia.com/PHPjc/326777.html

本当http://www.bkjia.com/PHPjc/326777.html技術記事次のようにコードをコピーします。 /*PHPMailer は、電子メールを送信するための PHP 関数パッケージです。提供する機能は次のとおりです: *. メール送信時に複数の受信者、CC アドレス、BCC アドレスを指定します...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles