阿里云服務(wù)器使用SMTP發(fā)送郵件

前言

在阿里云上買(mǎi)了一個(gè)輕量應(yīng)用服務(wù)器汹桦,之所以選擇這個(gè)是因?yàn)樵擃?lèi)型的服務(wù)器可以在購(gòu)買(mǎi)時(shí)配置開(kāi)發(fā)環(huán)境,而且價(jià)格比較便宜蝗锥。將網(wǎng)站在本地搭好上傳到云上時(shí)氓拼,發(fā)現(xiàn)原本可以運(yùn)行的郵件發(fā)送功能失效了。折騰了將近一天之后晨汹,才發(fā)現(xiàn)問(wèn)題所在豹储,這里記錄一下。

官方教程

阿里云在幫助中提供了SMTP發(fā)郵件的示例程序淘这,各個(gè)語(yǔ)言的版本都有剥扣,很全面:

image.png

其中PHP的代碼如下:

<?php
require 'email.class.php';
$mailto='***';
$mailsubject="測(cè)試郵件";
$mailbody='這里是郵件內(nèi)容';
$smtpserver     = "smtpdm.aliyun.com";
$smtpserverport = 25;
$smtpusermail   = "***";
$smtpuser       = "***";
$smtppass       = "***";
$mailsubject    = "=?UTF-8?B?" . base64_encode($mailsubject) . "?=";
$mailtype       = "HTML";
$smtp           = new smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass);
$smtp->debug    = false;
$smtp->sendmail($mailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);

在使用時(shí)我將官方給出的PHP的代碼復(fù)制進(jìn)去,運(yùn)行時(shí)還是出錯(cuò)(訪(fǎng)問(wèn)smtp服務(wù)器超時(shí))铝穷。后來(lái)查了各種資料才發(fā)現(xiàn)阿里云出于安全的考慮钠怯,將25號(hào)端口關(guān)閉了(教程給的就是25號(hào)端口)。實(shí)際中使用SSL協(xié)議曙聂,對(duì)應(yīng)SMTP端口就是465晦炊,將端口改掉,同時(shí)在smtp服務(wù)器地址前加ssl://即可:

$smtpserver     = "ssl://smtpdm.aliyun.com";
$smtpserverport = 465;

實(shí)例代碼

實(shí)際中網(wǎng)站使用PHPMail進(jìn)行郵件的發(fā)送宁脊。代碼如下:

<?php
//該文件名為 sendemailPHPMail.php
/* use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'php/Exception.php';
require 'php/PHPMailer.php';
require 'php/SMTP.php'; */
include_once "class.phpmailer.php"; 
include_once "class.smtp.php"; 
//include_once "Exception.php";
//獲取一個(gè)外部文件的內(nèi)容 
$mail=new PHPMailer(); 
///
$send_name=$_POST['name'];
$send_phone=$_POST['phone'];
$send_theme=$_POST['theme'];
$send_kind=$_POST['kind'];
$mailcontent = "姓名昵稱(chēng): ".$send_name."<br>電話(huà)郵箱: ".$send_phone."<br>用途: ".$send_theme."<br>風(fēng)格: ".$send_kind."<br>內(nèi)容: ".$_POST['content'];//郵件內(nèi)容
///
//設(shè)置smtp參數(shù) 
$mail->IsSMTP(); 
$mail->SMTPAuth=true; 
$mail->SMTPKeepAlive=true; 
$mail->Host="ssl://smtp.163.com"; 
$mail->Port=465; 
//填寫(xiě)你的email賬號(hào)和密碼 
$mail->Username="****@163.com"; 
$mail->Password="****";#注意這里要填寫(xiě)授權(quán)碼就是我在上面網(wǎng)易郵箱開(kāi)啟SMTP中提到的断国,不能填郵箱登錄的密碼哦。 
//設(shè)置發(fā)送方朦佩,最好不要偽造地址 
$mail->From="***@163.com"; 
$mail->FromName="***";//發(fā)送者用戶(hù)名 
$mail->Subject="****";//郵件標(biāo)題 
$mail->AltBody=$mailcontent; //郵件內(nèi)容
$mail->WordWrap=50; // set word wrap 
$mail->MsgHTML($mailcontent); 
//設(shè)置回復(fù)地址 
$mail->AddReplyTo("****@163.com","***"); 
//設(shè)置郵件接收方的郵箱和姓名 
$mail->AddAddress("***@qq.com","**");//接收者郵箱和用戶(hù)名 
//使用HTML格式發(fā)送郵件 
$mail->IsHTML(true); 
//通過(guò)Send方法發(fā)送郵件 
//根據(jù)發(fā)送結(jié)果做相應(yīng)處理 
if(!$mail->Send()){ 
    //echo "Mailer Error:".$mail->ErrorInfo;
    echo "<meta charset=\"UTF-8\">";
    echo "<script language=\"JavaScript\">\r\n";
    echo " alert(\"對(duì)不起并思,郵件發(fā)送失敗S锍怼宋彼!請(qǐng)充實(shí)\");\r\n";
    echo " history.back();\r\n";
    echo "</script>";
    exit;
    exit(); 
    }else{ 
        echo "<meta charset=\"UTF-8\">";
        echo "<script language=\"JavaScript\">\r\n";
        echo " alert(\"發(fā)送成功!仙畦!\");\r\n";
        echo " history.back();\r\n";
        echo "</script>";
        exit; 
} ?>

點(diǎn)擊下載class.phpmailer.phpclass.smtp.php文件输涕。(提取密碼為:x6at)
前端代碼為:

<form id="frmEmail" name="frmEmail" action="./php/sendemailPHPMail.php" method="post">
                        <div class="col-md-6 text-box">
                            <input name="name" type="text" placeholder="姓名昵稱(chēng)" />
                            <input name="phone" type="text" placeholder="電話(huà)or郵箱" />
              <input name="theme" type="text" placeholder="用途" />
              <input name="kind" type="text" placeholder="風(fēng)格" />
                        </div>
                        <div class="col-md-6 textarea">
                            <textarea name="content">內(nèi)容</textarea>
                        </div>
                        <div class="clearfix"> </div><br />
                        <input class="btn btn-primary btn-red-lg" type="submit" onClick="toOutLook()" value="提交" />
                    </form>

后記

被官方教程給坑了一下(╯︵╰),下次要注意慨畸。這里Mark一下( ̄▽?zhuān)?/莱坎。

附另一種smtp郵件發(fā)送方法:php利用smtp類(lèi)輕松的發(fā)送電子郵件,該方法沒(méi)有在阿里云服務(wù)器測(cè)試寸士,不過(guò)本地測(cè)試通過(guò)(PHP高于5.3使用時(shí)會(huì)有問(wèn)題)檐什。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碴卧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子乃正,更是在濱河造成了極大的恐慌住册,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓮具,死亡現(xiàn)場(chǎng)離奇詭異荧飞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)名党,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)叹阔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人传睹,你說(shuō)我怎么就攤上這事耳幢。” “怎么了蒋歌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵帅掘,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我堂油,道長(zhǎng)修档,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任府框,我火速辦了婚禮吱窝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘迫靖。我一直安慰自己院峡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布系宜。 她就那樣靜靜地躺著照激,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盹牧。 梳的紋絲不亂的頭發(fā)上俩垃,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音汰寓,去河邊找鬼口柳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛有滑,可吹牛的內(nèi)容都是我干的跃闹。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼望艺!你這毒婦竟也來(lái)了苛秕?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤找默,失蹤者是張志新(化名)和其女友劉穎想帅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體啡莉,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年旨剥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咧欣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡轨帜,死狀恐怖魄咕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蚌父,我是刑警寧澤哮兰,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站苟弛,受9級(jí)特大地震影響喝滞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膏秫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一右遭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缤削,春花似錦窘哈、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至帅刀,卻和暖如春让腹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背劝篷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工哨鸭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娇妓。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓像鸡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子只估,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 從古代的八百里加急志群,到現(xiàn)在的電子郵件,郵件的發(fā)展見(jiàn)證了上下五千年的發(fā)展史蛔钙,這些當(dāng)然是廢話(huà)锌云,只是要說(shuō)說(shuō)郵件的重要性。...
    大牧莫邪閱讀 1,558評(píng)論 0 13
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理吁脱,服務(wù)發(fā)現(xiàn)桑涎,斷路器,智...
    卡卡羅2017閱讀 134,711評(píng)論 18 139
  • 端口:0 服務(wù):Reserved 說(shuō)明:通常用于分析操作系統(tǒng)兼贡。這一方法能夠工作是因?yàn)樵谝恍┫到y(tǒng)中“0”是無(wú)效端口攻冷,...
    蕭玄辭閱讀 1,191評(píng)論 0 2
  • Django 官方文檔 發(fā)送email 官網(wǎng)地址:[https://docs.djangoproject.com/...
    學(xué)以致用123閱讀 2,271評(píng)論 0 2
  • 相遇是五百年的回眸, 筆墨紙硯淡彩遍希。 草正綠等曼, 花正艷, 美好看似凝結(jié)凿蒜。 風(fēng)雨無(wú)常禁谦, 任憑生。 對(duì)與錯(cuò)废封, 無(wú)關(guān)緊要...
    木薯羹閱讀 238評(píng)論 0 1