亚马逊EC2-再次:从EC2实例发送邮件(通过php)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了亚马逊EC2-再次:从EC2实例发送邮件(通过php),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1726字,纯文字阅读大概需要3分钟。
内容图文
![亚马逊EC2-再次:从EC2实例发送邮件(通过php)](/upload/InfoBanner/zyjiaocheng/657/4e965b2046bc4804840cf9954452f62d.jpg)
我已经看到了很多有关使用php的mail函数从Amazon EC2实例发送邮件的问题的讨论.没有任何建议对我有用.
这是我的设置:
>我有ubuntu EC2实例.
>我按照Amazon SES上的步骤使用为我创建的凭据安装后缀.我尝试了stunnel和直接方法.
>我使用swiftmail传输根据this发送我的邮件.用于发送邮件的传输功能返回0已交付.
>我只使用php邮件,它返回true.但是,即使是垃圾邮件也不会发送邮件.
顺便说一句,我没有在SES中使用生产服务.限制对我来说很好,我只是希望它能正常工作.
我怀疑我没有通过正确的身份验证,也看不出为什么.我尝试通过telnet … amazonaws.com 25进行连接.但是,当我在telnet中尝试命令Mail From:…时,它说需要身份验证.
我已经想到了一种替代方法:sendgrid.对我来说太贵了.
有什么想法吗?
解决方法:
这是我使用Sendgrid使用PHP从EC2实例发送邮件的方式:
>注册一个Sendgrid帐户.您将收到用于发送电子邮件的用户名和密码.此外,Sendgrid将手动验证您的帐户(可能是为了防止垃圾邮件).
>在ubuntu中安装PHP curl库:sudo apt-get install php5-curl.
>使用以下PHP代码发送电子邮件:
$url = 'http://sendgrid.com/';
$user = 'sendgrid_user';
$pass = 'sendgrid_password';
$params = array(
'api_user' => $user,
'api_key' => $pass,
'to' => $dest_addr,
'subject' => $subject,
'html' => $body,
//'text' => 'testing body',
'from' => $from_addr,
);
$request = $url.'api/mail.send.json';
$session = curl_init($request);
// Tell curl to use HTTP POST
curl_setopt ($session, CURLOPT_POST, true);
// Tell curl that this is the body of the POST
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
// Tell curl not to return headers, but do return the response
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// obtain response
$response = curl_exec($session);
//If the result is {"message":"success"}, then the mail is sent.
curl_close($session);
内容总结
以上是互联网集市为您收集整理的亚马逊EC2-再次:从EC2实例发送邮件(通过php)全部内容,希望文章能够帮你解决亚马逊EC2-再次:从EC2实例发送邮件(通过php)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。