ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してメールを自動的に送信する_PHP チュートリアル

PHP を使用してメールを自動的に送信する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:17:161347ブラウズ

このクラスを使用してメールを自動的に送信しますhttp://bbs.php100.com/read-htm-tid-121431.html

彼が使用したphpのバージョンが古いため、関数ereg_replace()ereg()

を使用しました


解決策

1ereg_replace() 関数の場合、strtr() 関数に置き換えます

構文の違いは次のとおりです:

詳細http://www.php.net/manual/zh/function.ereg-replace.php

詳細http://www.w3school.com.cn/php/func_string_strtr.asp

2ereg() 関数の場合は、preg_match() 関数に置き換えます

リンクhttp://blog.163.com/yanli_xu/blog/static/1363672912011420101820393/

preg_match() 関数構文http://www.php.net/manual/zh/function.preg-match.php

変更後の完全なコードは次のとおりです

【メールクラス】sm.class.php

PHP を使用してメールを自動的に送信する_PHP チュートリアル smtp( = "", = 25, = ,, ->デバッグ = ->smtp_port = ->relay_host = ->タイムアウト = 30; ->認証 = ; ->ユーザー = ->パス = ->ホスト名 = "ローカルホスト"; ->log_file = "" ->靴下 = sendmail(, , = "", = "", , = "", = "", = "" = ->get_address(->strip_comment() = (, "(^|(rn))(.)", "1.3" .= "MIME バージョン:1.0rn" (=="HTML" .= "Content-Type:text/htmlrn" .= "宛先: ".."rn" ( != "" .= "Cc: ".."rn" .= "From: <"..">rn"<スパン88 .= "件名: ".."rn"<スパン90 .= <スパン92 .= "Date: ".("r")."rn"<スパン94 .= "X-Mailer:By Redhat (PHP/".().")rn"<スパン96 <スパン97 <スパンリスト(<スパン$msec, <スパン$sec) = <スパンexplode(" ", <スパンマイクロタイム<スパン()); <スパン98 .= "Message-ID: <".("YmdHis", ).".".(*1000000). "."..">rn"<スパン100 = (",", ->strip_comment(<スパン102 ( != ""<スパン104 = (, (",", ->strip_comment( ( != "" = (, (",", ->strip_comment( = ( = ->get_address( (!->smtp_sockopen( ->log_write("エラー: ".."n" = (->smtp_send(->host_name, , , , ->log_write("電子メールが <" に送信されました。.">n"<スパン 134 <スパン 135 } <スパン else<スパン { <スパン 136 ->log_write("エラー: <" に電子メールを送信できません。.">n"<スパン 138 <スパン 139 <スパン $sent = <スパン FALSE<スパン ; <スパン140 <スパン 141 <スパン } <スパン 142 (-><スパン 144 ->log_write("リモートホストnから切断されました"<スパン 146 <スパン 147 <スパン } <スパン 148 <スパン 149 <スパン リターン <スパン $sent<スパン ; <スパン150 <スパン 151 <スパン } <スパン152 <スパン153 <スパン154 <スパン156 <スパン157 <スパン158 smtp_send(, , , , = ""<スパン160 <スパン 161 <スパン { <スパン162 (!->smtp_putcmd("HELO", <スパン 164 ->smtp_error("HELO コマンドの送信中"<スパン166 <スパン 167 <スパン }<スパン168 <スパン 169 <スパン #<スパン認証 <スパン170 (-><スパン 172 (!->smtp_putcmd("AUTH LOGIN", (-><スパン 174 ->smtp_error("HELO コマンドの送信中"<スパン 176 <スパン 177 <スパン } <スパン 178 (!->smtp_putcmd("", (-><スパン180 ->smtp_error("HELO コマンドを送信中"<スパン 182 <スパン 183 <スパン } <スパン 184 <スパン 185 <スパン } <スパン 186 <スパン 187 <スパン # <スパン188 (!->smtp_putcmd("MAIL", "FROM:<"..">" ->smtp_error("sending MAIL FROM command" (!->smtp_putcmd("RCPT", "TO:.">>" ->smtp_error("RCPT TO コマンドを送信中" (!->smtp_putcmd("DATA" ->smtp_error("DATA コマンドの送信中" (!->smtp_message(, ->smtp_error("メッセージ送信中" (!-> ->smtp_error("送信中 gt;.gt;[EOM]"<スパン216 <スパン 217 <スパン } <スパン218 (!->smtp_putcmd("QUIT"<スパン220 ->smtp_error("QUIT コマンドを送信中"<スパン222 <スパン 223 <スパン } <スパン 224 <スパン 225 <スパン リターン <スパン TRUE<スパン ; <スパン 226 <スパン 227 <スパン } <スパン 228 smtp_sockopen(<スパン230 <スパン 231 <スパン { <スパン232 (->relay_host == ""<スパン 234 ->smtp_sockopen_mx(<スパン 236 <スパン 237 } <スパン else<スパン { <スパン 238 -><スパン240 <スパン 241 <スパン } <スパン242 <スパン 243 <スパン } <スパン 244 <スパン 245 <スパン関数<スパン smtp_sockopen_relay() <スパン 246 <スパン 247 <スパン { <スパン 248 ->log_write("「.->relay_host.":".->smtp_port."n"<スパン250 ->sock = @(->relay_host, ->smtp_port, , 、<スパン $this-><スパン タイムアウト); <スパン 252 (!(->sock && -><スパン 254 ->log_write("エラー: リレー ホストに接続できません ".->relay_host."n"<スパン 256 ->log_write("エラー: ".." ("..")n"<スパン 258 <スパン 259 <スパン リターン <スパン FALSE<スパン ; <スパン260 <スパン 261 <スパン }<スパン 262 ->log_write("リレーホストに接続しました ".->relay_host."n"<スパン 264 <スパン 265 <スパン リターン <スパン TRUE<スパン ;; <スパン 266 <スパン 267 <スパン } <スパン 268 <スパン269 <スパン270 smtp_sockopen_mx(<スパン 272 <スパン 273 <スパン { <スパン 274 = (, "^.+@([^@]+)$", "1"<スパン 276 (!@getmxrr(, <スパン 278 ->log_write("エラー: MX "を解決できません"..""n" ( ->log_write("「..":" を試行しています。".->smtp_port."n" ->sock = @(, ->smtp_port, , , -> (!(->sock && -> ->log_write("警告: mx ホストに接続できません ".."n" ->log_write("エラー: ".." ("..")n" ->log_write("mx ホストに接続しました ".."n" ->log_write("エラー: どの mx ホストにも接続できません (".(", ", ).")n" smtp_message(
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。