php網站發送郵件,php接收郵件

本文目錄一覽:

如何在PHP中使用PHPMailer發送郵件

?php 

header(“content-type:text/html;charset=utf-8”); 

ini_set(“magic_quotes_runtime”,0); 

require ‘class.phpmailer.php’; 

try { 

$mail = new PHPMailer(true); 

$mail-IsSMTP(); 

$mail-CharSet=’UTF-8′; //設置郵件的字符編碼,這很重要,不然中文亂碼 

$mail-SMTPAuth = true; //開啟認證 

$mail-Port = 25; 

$mail-Host = “smtp.163.com”; 

$mail-Username = “phpddt1990@163.com”; 

$mail-Password = “這是密碼”; 

//$mail-IsSendmail(); //如果沒有sendmail組件就注釋掉,否則出現“Could not execute: /var/qmail/bin/sendmail ”的錯誤提示 

$mail-AddReplyTo(“phpddt1990@163.com”,”mckee”);//回復地址 

$mail-From = “phpddt1990@163.com”; 

$mail-FromName = “”; 

$to = “987044391@qq.com”; 

$mail-AddAddress($to); 

$mail-Subject = “phpmailer測試標題”; 

$mail-Body = “h1phpmail演示/h1這是php點點通(font color=red;/font)對phpmailer的測試內容”; 

$mail-AltBody = “To view the message, please use an HTML compatible email viewer!”; //當郵件不支持html時備用顯示,可以省略 

$mail-WordWrap = 80; // 設置每行字符串的長度 

//$mail-AddAttachment(“f:/test.png”); //可以添加附件 

$mail-IsHTML(true); 

$mail-Send(); 

echo ‘郵件已發送’; 

} catch (phpmailerException $e) { 

echo “郵件發送失敗:”.$e-errorMessage(); 

?

php怎麼實現發送郵件

PHP發送郵件是“非常的簡單” 因為他提供了mail()函數直接發送,但配置相當麻煩 (1)通過mail()函數發送郵件 mail() 配置PHP.ini 郵件信息 需要類似sendmail這樣的組件支持 (2)通過socket通訊,使用SMTP傳輸 socket連接-SMTP通訊-獲取通訊消息-發送 mail函數的使用 mail() 函數允許您從腳本中直接發送電子郵件。 如果郵件的投遞被成功地接收,則返回 true,否則返回 mail(to,subject,message,headers,parameters) socket方式發送原理 給你一個別人寫好的類 用法在下面 本人經測試很多網站都不提供免費的smtp服務(126、sina、netease 這幾個試過了),騰訊郵箱支持此功能。 用法: ? require_once (’email.class.php’); //########################################## $smtpserver = “smtp.163.com”;//SMTP服務器 $smtpserverport =25;//SMTP服務器端口 $smtpusermail = “”;//SMTP服務器的用戶郵箱 $smtpemailto = “”;//發送給誰 $smtpuser = “”;//SMTP服務器的用戶帳號 $smtppass = “”;//SMTP服務器的用戶密碼 $mailsubject = “PHP100測試郵件系統”;//郵件主題 $mailbody = “h1 這是一個測試程序 PHP100.com /h1”;//郵件內容 $mailtype = “HTML”;//郵件格式(HTML/TXT),TXT為文本郵件 ########################################## $smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//這裡面的一個true是表示使用身份驗證,否則不使用身份驗證. $smtp-debug = FALSE;//是否顯示發送的調試信息 $smtp-sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype); ? 郵件發送類 ? class smtp { /* Public Variables */ var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; /* Private Variables */ var $sock; /* Constractor */ function smtp($relay_host = “”, $smtp_port = 25,$auth = false,$user,$pass) { $this-debug = FALSE; $this-smtp_port = $smtp_port; $this-relay_host = $relay_host; $this-time_out = 30; //is used in fsockopen() # $this-auth = $auth;//auth $this-user = $user; $this-pass = $pass; # $this-host_name = “localhost”; //is used in HELO command $this-log_file =””; $this-sock = FALSE; } /* Main Function */ function sendmail($to, $from, $subject = “”, $body = “”, $mailtype, $cc = “”, $bcc = “”, $additional_headers = “”) { $mail_from = $this-get_address($this-strip_comment($from)); $body = ereg_replace(“(^|(\r\n))(\\.)”, “\\1.\\3”, $body); $header .= “MIME-Version:1.0\r\n”; if($mailtype==”HTML”){ $header .= “Content-Type:text/html\r\n”; } $header .= “To: “.$to.”\r\n”; if ($cc != “”) { $header .= “Cc: “.$cc.”\r\n”; } $header .= “From: $from”.$from.”\r\n”; $header .= “Subject: “.$subject.”\r\n”; $header .= $additional_headers; $header .= “Date: “.date(“r”).”\r\n”; $header .= “X-Mailer:By Redhat (PHP/”.phpversion().”)\r\n”; list($msec, $sec) = explode(” “, microtime()); $header .= “Message-ID: “.date(“YmdHis”, $sec).”.”.($msec*1000000).”.”.$mail_from.”\r\n”; $TO = explode(“,”, $this-strip_comment($to)); if ($cc != “”) { $TO = array_merge($TO, explode(“,”, $this-strip_comment($cc))); } if ($bcc != “”) { $TO = array_merge($TO, explode(“,”, $this-strip_comment($bcc))); } $sent = TRUE; foreach ($TO as $rcpt_to) { $rcpt_to = $this-get_address($rcpt_to); if (!$this-smtp_sockopen($rcpt_to)) { $this-log_write(“Error: Cannot send email to “.$rcpt_to.”\n”); $sent = FALSE; continue; } if ($this-smtp_send($this-host_name, $mail_from, $rcpt_to, $header, $body)) { $this-log_write(“E-mail has been sent to “.$rcpt_to.”\n”); } else { $this-log_write(“Error: Cannot send email to “.$rcpt_to.”\n”); $sent = FALSE; } fclose($this-sock); $this-log_write(“Disconnected from remote host\n”); } echo “br”; echo $header; return $sent; } /* Private Functions */ function smtp_send($helo, $from, $to, $header, $body = “”) { if (!$this-smtp_putcmd(“HELO”, $helo)) { return $this-smtp_error(“sending HELO command”); } #auth if($this-auth){ if (!$this-smtp_putcmd(“AUTH LOGIN”, base64_encode($this-user))) { return $this-smtp_error(“sending HELO command”); } if (!$this-smtp_putcmd(“”, base64_encode($this-pass))) { return $this-smtp_error(“sending HELO command”); } } # if (!$this-smtp_putcmd(“MAIL”, “FROM:”.$from.””)) { return $this-smtp_error(“sending MAIL FROM command”); } if (!$this-smtp_putcmd(“RCPT”, “TO:”.$to.””)) { return $this-smtp_error(“sending RCPT TO command”); } if (!$this-smtp_putcmd(“DATA”)) { return $this-smtp_error(“sending DATA command”); } if (!$this-smtp_message($header, $body)) { return $this-smtp_error(“sending message”); } if (!$this-smtp_eom()) { return $this-smtp_error(“sending CRLF.CRLF [EOM]”); } if (!$this-smtp_putcmd(“QUIT”)) { return $this-smtp_error(“sending QUIT command”); } return TRUE; } function smtp_sockopen($address) { if ($this-relay_host == “”) { return $this-smtp_sockopen_mx($address); } else { return $this-smtp_sockopen_relay(); } } function smtp_sockopen_relay() { $this-log_write(“Trying to “.$this-relay_host.”:”.$this-smtp_port.”\n”); $this-sock = @fsockopen($this-relay_host, $this-smtp_port, $errno, $errstr, $this-time_out); if (!($this-sock $this-smtp_ok())) { $this-log_write(“Error: Cannot connenct to relay host “.$this-relay_host.”\n”); $this-log_write(“Error: “.$errstr.” (“.$errno.”)\n”); return FALSE; } $this-log_write(“Connected to relay host “.$this-relay_host.”\n”); return TRUE;; } function smtp_sockopen_mx($address) { $domain = ereg_replace(“^.+@([^@]+)$”, “\\1”, $address); if (!@getmxrr($domain, $MXHOSTS)) { $this-log_write(“Error: Cannot resolve MX \””.$domain.”\”\n”); return FALSE; } foreach ($MXHOSTS as $host) { $this-log_write(“Trying to “.$host.”:”.$this-smtp_port.”\n”); $this-sock = @fsockopen($host, $this-smtp_port, $errno, $errstr, $this-time_out); if (!($this-sock $this-smtp_ok())) { $this-log_write(“Warning: Cannot connect to mx host “.$host.”\n”); $this-log_write(“Error: “.$errstr.” (“.$errno.”)\n”); continue; } $this-log_write(“Connected to mx host “.$host.”\n”); return TRUE; } $this-log_write(“Error: Cannot connect to any mx hosts (“.implode(“, “, $MXHOSTS).”)\n”); return FALSE; } function smtp_message($header, $body) { fputs($this-sock, $header.”\r\n”.$body); $this-smtp_debug(” “.str_replace(“\r\n”, “\n”.” “, $header.”\n “.$body.”\n “)); return TRUE; } function smtp_eom() { fputs($this-sock, “\r\n.\r\n”); $this-smtp_debug(“. [EOM]\n”); return $this-smtp_ok(); } function smtp_ok() { $response = str_replace(“\r\n”, “”, fgets($this-sock, 512)); $this-smtp_debug($response.”\n”); if (!ereg(“^[23]”, $response)) { fputs($this-sock, “QUIT\r\n”); fgets($this-sock, 512); $this-log_write(“Error: Remote host returned \””.$response.”\”\n”); return FALSE; } return TRUE; } function smtp_putcmd($cmd, $arg = “”) { if ($arg != “”) { if($cmd==””) $cmd = $arg; else $cmd = $cmd.” “.$arg; } fputs($this-sock, $cmd.”\r\n”); $this-smtp_debug(” “.$cmd.”\n”); return $this-smtp_ok(); } function smtp_error($string) { $this-log_write(“Error: Error occurred while “.$string.”.\n”); return FALSE; } function log_write($message) { $this-smtp_debug($message); if ($this-log_file == “”) { return TRUE; } $message = date(“M d H:i:s “).get_current_user().”[“.getmypid().”]: “.$message; if (!@file_exists($this-log_file) || !($fp = @fopen($this-log_file, “a”))) { $this-smtp_debug(“Warning: Cannot open log file \””.$this-log_file.”\”\n”); return FALSE; } flock($fp, LOCK_EX); fputs($fp, $message); fclose($fp); return TRUE; } function strip_comment($address) { $comment = “\\([^()]*\\)”; while (ereg($comment, $address)) { $address = ereg_replace($comment, “”, $address); } return $address; } function get_address($address) { $address = ereg_replace(“([ \t\r\n])+”, “”, $address); $address = ereg_replace(“^.*(.+).*$”, “\\1″, $address); return $address; } function smtp_debug($message) { if ($this-debug) { echo $message.”br”; } } function get_attach_type($image_tag) { // $filedata = array(); $img_file_con=fopen($image_tag,”r”); unset($image_data); while ($tem_buffer=AddSlashes(fread($img_file_con,filesize($image_tag)))) $image_data.=$tem_buffer; fclose($img_file_con); $filedata[‘context’] = $image_data; $filedata[‘filename’]= basename($image_tag); $extension=substr($image_tag,strrpos($image_tag,”.”),strlen($image_tag)-strrpos($image_tag,”.”)); switch($extension){ case “.gif”: $filedata[‘type’] = “image/gif”; break; case “.gz”: $filedata[‘type’] = “application/x-gzip”; break; case “.htm”: $filedata[‘type’] = “text/html”; break; case “.html”: $filedata[‘type’] = “text/html”; break; case “.jpg”: $filedata[‘type’] = “image/jpeg”; break; case “.tar”: $filedata[‘type’] = “application/x-tar”; break; case “.txt”: $filedata[‘type’] = “text/plain”; break; case “.zip”: $filedata[‘type’] = “application/zip”; break; default: $filedata[‘type’] = “application/octet-stream”; break; } return $filedata; } } ?

怎麼利用php發送郵件求詳細教程

PHP雖然提供了mail()函數,但並不好用,而PHPMailer是一個不錯的郵件發送工具,接下來將詳細介紹,需要了解的朋友可以參考下:

本人使用wamp集成開發環境,Apache2.4.4, Mysql5.6.12 , php5.4.12.開始的時候使用mail()發送郵件,更改配置始終無法成功,了解到mail()函數使用需要sendmail程序。又下載了sendmail程序擴展包。按照網上的說法也改好了php.ini和sendmail.ini。使用foxmail 7.1創建了自己的qq郵箱賬戶,開啟了POP3/SMTP服務,更改發件服務器為POP3,使用和收件服務器相同的身份驗證,結果還是報錯:Warning: mail(): SMTP server response: 503 Error: need EHLO and AUTH first ! in F:\PHP\wamp\www\mail.php on line 8。以下是使用mail()函數發送郵件的php代碼:

[php] view plain copy

span style=”font-size:14px”?php

$to = “757006080@qq.com”;

$subject = “Test mail”;

$message = “Hello! This is a simple email message.”;

$from = “757006080@qq.com”;

$headers = “From: $from”;

$send=mail($to,$subject,$message,$headers);

if($send)

echo “Mail Sent”;

else

echo “Sorry,mail sent failed!”

?/span

在CSDN論壇上發現phpmailer可以方便快捷的發送郵件,以下寫出詳細使用教程:

1.需要下載PHPMailer文件包,(點擊打開鏈接)

2.確認你的服務器已經系統支持socket,通過phpinfo()查看是否支持socket;

3.把文件解壓到你的WEB服務器目錄下,就可以使用PHPMailer發送郵件了。

以下為前台表單php代碼:

[php] view plain copy

span style=”font-size:14px”html

body

h3phpmailer Unit Test/h3

請你輸入font color=”#FF6666″收信/font的郵箱地址:

form name=”phpmailer” action=”testemail.php” method=”post”

input type=”hidden” name=”submitted” value=”1″/

郵箱地址: input type=”text” size=”50″ name=”to” /

br/

input type=”submit” value=”發送”/

/form

/body

/html /span

以下為後台程序:

[php] view plain copy

?php

/**

* Simple example script using PHPMailer with exceptions enabled

* @package phpmailer

* @version $Id$

*/

header(“content-type:text/html;charset=utf-8”);

ini_set(“magic_quotes_runtime”,0);

require(‘class.phpmailer.php’);

try {

$mail = new PHPMailer(true); //New instance, with exceptions enabled

//$body = file_get_contents(‘contents.html’);

//$body = preg_replace(‘/\\\\/’,”, $body); //Strip backslashes

$to = $_POST[‘to’];

$mail-CharSet=”GB2312″;//設置郵件字符編碼否則郵件會亂碼

$mail-Encoding=”base64″;

$mail-IsSMTP(); // tell the class to use SMTP

$mail-SMTPAuth = true; // enable SMTP authentication

$mail-Port = 25; // set the SMTP server port

$mail-Host = “smtp.qq.com”; // SMTP server

$mail-Username = “757006080@qq.com”; // SMTP server username

$mail-Password = “000000000000”; // SMTP server password

//$mail-IsSendmail(); // tell the class to use Sendmail

$mail-AddReplyTo(“757006080@qq.com”,”han qing”);

$mail-From = “757006080@qq.com”;

$mail-FromName = “han qing”;

//$to = “hanqing757@gmail.com”;

$mail-AddAddress($to);

$mail-Subject =$mail-Subject = “=?utf-8?B?” . base64_encode(“First PHPMailer Message”) . “?=”;

$mail-Body = “h1phpmailer演示/h1 這是用PHPMAILER發的第一份郵件,從QQ郵箱發到Google郵箱.”;

$mail-AddAttachment(“F:/myloe.jpg”);

$mail-AltBody = “To view the message, please use an HTML compatible email viewer!”; // optional, comment out and test

$mail-WordWrap = 80; // set word wrap

//$mail-MsgHTML($body);

$mail-IsHTML(true); // send as HTML

$mail-Send();

echo ‘Message has been sent.’;

} catch (phpmailerException $e) {

echo $e-errorMessage();

}

?

如何用php結合phpmailer發送郵件

先下載phpmailer,保存在你的網站目錄,在發布的頁面添加一個函數用來區分發送的主題

require_once(‘class.phpmailer.php’);

require_once(“class.smtp.php”); 

$mail  = new PHPMailer(); 

$mail-CharSet    =”UTF-8″;                 //設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置為 UTF-8

$mail-IsSMTP();                            // 設定使用SMTP服務

$mail-SMTPAuth   = true;                   // 啟用 SMTP 驗證功能

$mail-SMTPSecure = “ssl”;                  // SMTP 安全協議

$mail-Host       = “smtp.gmail.com”;       // SMTP 服務器

$mail-Port       = 465;                    // SMTP服務器的端口號

$mail-Username   = “your_name@gmail.com”;  // SMTP服務器用戶名

$mail-Password   = “your_password”;        // SMTP服務器密碼

$mail-SetFrom(‘發件人地址’, ‘發件人名稱’);    // 設置發件人地址和名稱

$mail-AddReplyTo(“郵件回復人地址”,”郵件回復人名稱”); 

                                            // 設置郵件回復人地址和名稱

$mail-Subject    = ”;                     // 設置郵件標題

$mail-AltBody    = “為了查看該郵件,請切換到支持 HTML 的郵件客戶端”; 

                                            // 可選項,向下兼容考慮

$mail-MsgHTML(”);                         // 設置郵件內容

$mail-AddAddress(‘收件人地址’, “收件人名稱”);

//$mail-AddAttachment(“images/phpmailer.gif”); // 附件 

if(!$mail-Send()) {

    echo “發送失敗:” . $mail-ErrorInfo;

} else {

    echo “恭喜,郵件發送成功!”;

}

原創文章,作者:QASWX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/317155.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QASWX的頭像QASWX
上一篇 2025-01-11 16:27
下一篇 2025-01-11 16:27

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • IDEA Java發送郵件出現錯誤解決方案

    IDEA Java是一款常用的Java開發工具,很多開發者都使用它來開發Java應用程序。然而,在使用IDEA Java發送郵件時,有可能會出現一些錯誤。本文將從多個方面對該錯誤進…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網絡請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網絡請求 Python有三種主流的網絡請求庫:ur…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 如何在服務器上運行網站

    想要在服務器上運行網站,需要按照以下步驟進行配置和部署。 一、選擇服務器和域名 想要在服務器上運行網站,首先需要選擇一台雲服務器或者自己搭建的服務器。雲服務器會提供更好的穩定性和可…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28

發表回復

登錄後才能評論