本文目錄一覽:
- 1、如何使用PHP通過SMTP發送電子郵件
- 2、php通過 smtp發送郵件問題
- 3、php smtp發送郵件
- 4、php 如何通過smtp發送圖片郵件?
- 5、如何在 BlueHost 空間中用 PHP 以 SMTP 方式發送郵件
- 6、PHP如何通過SMTP驗證發送郵件
如何使用PHP通過SMTP發送電子郵件
使用PHP類可以實現,例如:phpmailer,下面是示例代碼
require(“class.phpmailer.php”); //這個是一個smtp的php文檔,網上可以下載得到
$mail = new PHPMailer(); //建立郵件發送類
$mail-CharSet = “UTF-8”;
$address =”sdasdsadsa@qq.com”;
$mail-IsSMTP(); // 使用SMTP方式發送
$mail-Host = “smtp.126.com”; // 您的企業郵局域名
$mail-SMTPAuth = true; // 啟用SMTP驗證功能
$mail-Username = “sffsdf@126.com”; // 郵局用戶名(請填寫完整的email地址)
$mail-Password = “123444”; // 郵局密碼
$mail-Port=25;
$mail-From = “sffsdf@126.com”; //郵件發送者email地址
$mail-FromName = “在線Q聊”;
$mail-AddAddress(“$address”, “a”);//收件人地址,可以替換成任何想要接收郵件的email信箱,格式是AddAddress(“收件人email”,”收件人姓名”)
//$mail-AddReplyTo(“”, “”);
//$mail-AddAttachment(“/var/tmp/file.tar.gz”); // 添加附件
$mail-IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail-Subject = “在線Q聊”; //郵件標題
$mail-Body = “在線Q聊網站歡迎訪問”; //郵件內容,上面設置HTML,則可以是HTML
if(!$mail-Send())
{
echo “郵件發送失敗. p”;
echo “錯誤原因: ” . $mail-ErrorInfo;
exit;
}
參見:
php通過 smtp發送郵件問題
程序中:$this-smtp_putcmd(“”, base64_encode($this-pass)
登陸密碼base64後明文發送,認證方式為未加密方式,163的郵箱支持未加密的認證,其他郵箱就未必了,而且像google郵箱也不接受來自本localhost主機發送的郵件,只接受開放smtp服務的主機發送郵件。
以下這段程序是原來寫的,探測smtp主機的,在$server數組中添加smtp主機就可以了,只有返回AUTH LOGIN PLAIN的才可以用你說的程序發送郵件:
?
set_time_limit( 0 );
$server = array(
“smtp.163.com”,
“smtp.sina.com”,
“smtp.google.com”,
);
echo “pre style=’font-size:12px;font-family:verdana'”;
foreach ( $server as $key = $val) {
$fp = fsockopen( $val, 25, $errno, $errstr, 10 );
if ( $errno !==0 ) {
echo(“Can not connect to $val .\r\n”);
continue;
}
echo “\r\nfont color=red$val/font \r\n”;
echo fread( $fp, 1024);
fputs( $fp, “EHLO localhost\r\n” );
echo fread( $fp, 1024 );
fclose( $fp );
php smtp發送郵件
哈哈 163 的郵箱 好像 得 07年之前註冊的可以 要不就是 06年之前的 我忘了 我曾經弄過 哈哈
php 如何通過smtp發送圖片郵件?
方法很多。
方法1:可以弄成html,找個服務器,郵件發送時發html就是
方法2:圖做成郵件附件
方法3:type= “image/jpeg”修改郵件文件屬性發送
如何在 BlueHost 空間中用 PHP 以 SMTP 方式發送郵件
你可以用 mail,sendmail 和 smtp 三種方式來藉助 Mail 類發送郵件。話說幾天前剛買了個 BlueHost 的空間,在上面跑程序的時候用 PHP 發郵件搞出點心得來,放在這裡跟大家分享。 首先我在系統中添加了一個郵件賬戶 test,密碼 123456,然後寫下了如下代碼: require_once( ‘Mail.php’); $conf = array( ‘host’ = ‘mail.yourdomail.com’, ‘auth’ = true, ‘username’ = ‘test’, ‘password’ = ‘123456’ ); $headers[‘From’] = ‘noreply@yourdomain.com’; $headers[‘To’] = $To; $headers[‘Subject’] = ‘=?GB2312?B?’ . base64_encode( $Subject) . ‘?=’; $headers[‘Content-Type’] = ‘text/plain; charset=gb2312’; $Mail = Mail::factory( ‘smtp’, $conf); $res = $Mail-send( $To, $headers, $Content); ? $To 是想要發送到的信箱地址,比如 foobar@gmail.com,$Subject 是郵件主題,$Content 是 GB2312 編碼的郵件正文。結果用以上程序屢試屢敗,後來經過多次試驗才得出在 BlueHost 主機上用 PHP 以 SMTP 方式發送郵件的正確方法,注意事項如下:1) BlueHost 幫助信息中說跟你賬戶(域名)相對應的 SMTP 主機地址是 mail.yourdomain.com,但其實應該是 localhost。你用 mail.yourdomain.com 只會得到 SMTP 拒絕鏈接的錯誤信息。2) SMTP 服務器需要驗證才能發郵件。3) SMTP 驗證時用戶名需要寫 user+yourdomain.com,不能寫 user@yourdomain.com。想想這個也好理解,在虛擬主機上一個 SMTP server 要支撐很多個賬戶,這種寫法應該是為了區別發件的賬戶。4) 郵件頭中的發件郵件賬戶一定要是存在於系統中的真實賬戶,象我上面那樣註冊了一個 test@yourdomain.com,但是發件人賬戶又寫 noreply@yourdomain.com 是不行的,只會得到這樣的錯誤信息:SMTP: Invalid response code received from server (code: 550, response: Verification failed for No Such User Here Sender verify failed) 知道了上面這 4 個注意事項以後就好辦了,刪掉剛才註冊的 test 郵件帳號,註冊一個 noreply 帳號,修改程序如下: require_once( ‘Mail.php’); $conf = array( ‘host’ = ‘localhost’, ‘auth’ = true, ‘username’ = ‘noreply+yourdomain.com’, ‘password’ = ‘123456’ ); $headers[‘From’] = ‘noreply@yourdomain.com’; $headers[‘To’] = $To; $headers[‘Subject’] = ‘=?GB2312?B?’ . base64_encode( $Subject) . ‘?=’; $headers[‘Content-Type’] = ‘text/plain; charset=gb2312’; $Mail = Mail::factory( ‘smtp’, $conf); $res = $Mail-send( $To, $headers, $Content); ? 郵件被成功的發送出去了,而且由於郵件服務器在美國,發送到 GMail 信箱非常之快,一般這邊一發那邊刷新一下就能看到新郵件:) 這裡再說些題外話,買了 BlueHost 的空間將近一周時間了,感覺美國的虛擬主機市場確實非常成熟,功能強大。跟國內價格還行但是配置超受限的主機比起來性價比高的不得了!只要你選對了服務提供商,可以說絕對讓你滿意。但是缺點也比較明顯,就是速度實在是慢!這裡面的原因眾所周知,感謝偉大的電信運營商,感謝偉大的 GFW! 今天跟 HostMonster 的客戶溝通了一下,問問他們那邊從中國過去的訪問速度怎麼樣,估計人家遇到這樣的情況不是個別現象,上來就是一句,我們對來自中國的訪問速度無法做出承諾。 國內的虛擬主機服務商有萬網這樣把大家當 SB 漫天要價的主,但是也有兢兢業業踏踏實實做服務的公司,不過性價比跟國外的運營商確實沒法比。一邊是價格高不了多少,動輒幾十 G 空間幾百 G 月流量,支持 SSH,支持多 Addon domain 的國外主機,一邊是價廉物不太美的國內主機,我想誘惑力是不言而喻的。但是速度,唉,傷心是一種說不出的痛!
PHP如何通過SMTP驗證發送郵件
PHP mail()與SMTP驗證
缺乏靈活性是PHP的mail()函數顯得過於簡單的部分原因。最重要而且令人沮喪的是,死板的mail()函數通常還不允許你使用你選擇的SMTP服務器,並且它也根本不支持如今已被眾多郵件服務器採用的SMTP驗證。
幸運的是,克服PHP本身的缺陷既不困難,也不麻煩,更不痛苦。對於大多數情況下的郵件應用,免費的PEAR Mail包足夠提供全部的所需功能與靈活性,並且它也能夠與你期望的外部郵件服務器進行驗證。在提高安全性的方面,它也支持SSL連接。
通過SMTP驗證在PHP腳本中發送郵件
在PHP腳本中通過SMTP驗證連接外部SMTP服務器並且發送郵件的方法如下:
確保PEAR Mail包已經安裝。
通常,它已經安裝到了PHP之中,尤其在PHP 4及以後的版本中。放手一試吧。
?php
require_once “Mail.php”;
$from = “Sandra Sender s”;
$to = “Ramona Recipient r”;
$subject = “Hi!”;
$body = “Hi,\n\nHow are you?”;
$host = “mail.example.com”;
$username = “smtp_username”;
$password = “smtp_password”;
$headers = array (‘From’ = $from,
‘To’ = $to,
‘Subject’ = $subject);
$smtp = Mail::factory(‘smtp’,
array (‘host’ = $host,
‘auth’ = true,
‘username’ = $username,
‘password’ = $password));
$mail = $smtp-send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo(“p” . $mail-getMessage() . “/p”);
} else {
echo(“pMessage successfully sent!/p”);
}
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/196173.html