使用indy寄送電子郵件的注意點

來源:互聯網
上載者:User

用indy9.0.18元件寄送電子郵件很簡單,一般這樣就可以:

procedure SendAMail(AFromAddress,AToAddress:string;ASubject:string;<br /> ABody:string;AttachmentFileNames:array of string; ASMTP:string;ASMTPUserName:string;ASMTPPassword:string;ASMTPNeeddLogin:Boolean);<br />var<br /> vMS:TidMessage;<br /> vSMTP:TidSMTP;<br /> i:integer;<br />begin<br /> vMS:=TidMessage.Create(nil);<br /> vSMTP:=TidSMTP.Create(nil);<br /> try<br /> vMS.From.Address:=AFromAddress;<br /> vMS.From.Name:=ASMTPUserName;<br /> vMS.Recipients.Add.Address:=AToAddress;<br /> vMS.Subject:=ASubject;<br /> vMS.Body.Text:=ABody;<br /> for i:=0 to High(AttachmentFileNames) do<br /> begin<br /> TidAttachment.Create(vMS.MessageParts,AttachmentFileNames[i]);<br /> end;</p><p> vSMTP.Host:=ASMTP;<br /> vSMTP.Username:=ASMTPUserName;<br /> vSMTP.Password:=ASMTPPassword;<br /> if ASMTPNeeddLogin then vSMTP.AuthenticationType:=atlogin;<br /> vSMTP.Connect;<br /> vSMTP.Authenticate;//xxx@qq.com不需要這句也可以,xxx@163.com必須要這句<br /> vSMTP.Send(vMS);<br /> finally<br /> vSMTP.Free;<br /> vMS.Free;<br /> end;<br />end;

如果發送時需要登入,就傳ASMTPNeedLogin為true,ASMTP使用外部服務商提供的地址,或者在區域網路內使用你的Exchanged Server的地址。需要注意的是:

1、對xxx@qq.com,需要登入http://mail.qq.com,在你的郵箱設定中去開通“允許pop3/smtp收發郵件”;

2、ASMTPUserName你要注意郵件服務商如何規定的,對xxx@qq.com,只需要且只能輸入前面的xxx就可以了,而對於xxx@163.com,則只輸入xxx或者全部輸xxx@163.com都可以。

3、在代碼上,“vSMTP.Authenticate;”這句,xxx@qq.com不需要這句也可以,xxx@163.com必須要這句,否則出現“bad sequence of commands”錯誤。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.