日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

使用PHP发送邮件的两种方法

發布時間:2024/4/14 php 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用PHP发送邮件的两种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用PHP發送郵件的兩種方法

May242013 作者:Jerry Bendy ? 發布:2013-05-24 22:25 ? 分類:PHP?? 閱讀:2,107 views ??搶沙發??

今天研究了一下使用PHP來發送電子郵件,總結了一下,有這么兩種方法:

一、使用PHP內置的mail()函數

看了一下手冊,就直接開始寫代碼了,如下

$to = "test@163.com"; $subject = "Test"; $message = "This is a test mail!"; mail($to,$subject,$message);

結果就直接報錯,如下:

Warning: mail() [function.mail]: Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in?D:/www/Zend/email/email.php?on line?10

看來本地需要有SMTP服務器,那就使用別人的試試吧,又改了下代碼

$to = "test@163.com"; $subject = "Test"; $message = "This is a test mail!"; ini_set('SMTP','smtp.163.com'); ini_set('smtp_port',25); ini_set('sendmail_from',"admin@163.com"); mail($to,$subject,$message);

結果還是錯誤:

Warning: mail() [function.mail]: SMTP server response: 553 authentication is required,smtp2,DNGowKD7v5BTDo9NnplVBA–.1171S2 1301220947 in?D:/www/Zend/email/email.php?on line?9

看來是需要驗證信息,怎么寫驗證信息呢?在哪里配置呢?上網找了半天也沒找出個所以然,最后看了別人一些技術文章后得出結論(由于對SMTP郵件什么的不是非常了解,所以也不知道這個結論是否是正確的):使用mail()函數發送郵件就必須要有一臺無需SMTP驗證就可以發信的郵件服務器。但現在的SMTP郵件服務器基本上都是需要驗證的,所以要想使用它發郵件就只能自己在本地搭一個不需要驗證的SMTP服務器。這就比較麻煩了,我是不想整,有興趣的同學可以自己試試搭一個,用windows自帶的IIS就可以,或者從網上下載其他的SMTP服務器軟件,我就不多說。

結論:使用mail()函數發送郵件,就必須要有一臺不需要驗證的SMTP服務器。

這樣的話配置工作會多一點,但是使用的時候就比較省事了,幾行代碼就可以。

?

二、使用SMTP郵件類

這種方法就比較常見了,尤其對于廣大自己沒有服務器,從網上購買虛擬主機的同學,第一種方法不現實,所以還是自己使用SMTP協議來發送郵件吧。不過要完成這項工作的話,就需要你對SMTP協議有一定的了解,喜歡事必躬親的同學可以自己動手寫一個,喜歡拿來主義的同學就可以從網上下載了,有很多,自己找吧。

下面我舉例說明一下在CodeIgniter里面如何使用它內置的郵件類發送郵件吧

$this->load->library('email');$to = "aa@bb.cc";$subject = "test";$message = "hello!";$config["protocol"] = "smtp";$config["smtp_host"] = "smtp.163.com";$config["smtp_user"] = "username@163.com";$config["smtp_pass"] = "password";$config["mailtype"] = "html";$config["validate"] = true;$config["priority"] = 3;$config["crlf"] = "/r/n";$config["smtp_port"] = 25;$config["charset"] = "utf-8";$config["wordwrap"] = TRUE;$this->email->initialize($config);$this->email->from('xxxx@163.com', 'xxxx');$this->email->to($to); $this->email->subject($subject);$this->email->message($message); $this->email->send();

由于這些類都是高度封裝的,所以使用起來也很簡單。

結論:這種方式發送郵件無需裝任何軟件,但是需要你寫更多的代碼,而且要對SMTP比較熟悉。

但是如果你不自己寫,而是直接使用別人寫好的現成的代碼的話,那這種方法無疑是最省事的:

不需要自己搭建SMTP服務器,也不需要寫很多的代碼。

轉載于:https://www.cnblogs.com/u0mo5/p/4902606.html

總結

以上是生活随笔為你收集整理的使用PHP发送邮件的两种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。