如何在Windows Azure上使用PHP发送电子邮件?

时间:2012-05-14 11:32:19

标签: php azure

如何在Windows Azure上使用PHP发送电子邮件?

我正在使用简单的邮件功能:

$to .= 'email-Id';
$subject = " Test Subject";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: '.$to.'' . "\r\n";
$headers .= 'From: '.$name. '<'.$email.'>' . "\r\n";

echo $message='email text here';
@mail($to, $subject, $message, $headers);

5 个答案:

答案 0 :(得分:18)

要使用PHP发送电子邮件,您有以下几种选择:

选项1:使用SMTP

您需要修改 php.ini 配置文件(http://php.net/manual/en/ref.mail.php)并将SMTP值设置为您可以使用的外部 SMTP服务器。目前,SMTP服务器不是Windows Azure功能的一部分。

[mail function]
SMTP = mail.mycompany.com

选项2:使用sendmail

您需要修改 php.ini 配置文件(http://php.net/manual/en/ref.mail.php)并将sendmail_path值设置为sendmail可执行文件。

[mail function]
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

由于Windows中不存在sendmail,因此您需要使用伪造的sendmail for windows http://glob.com.au/sendmail/

选项3:使用邮件/ smtp服务

您可以使用SendGrid之类的服务发送电子邮件(他们为Azure用户提供了优惠:http://sendgrid.com/azure.html)。他们会负责发送电子邮件,你只需要调用REST api:

$sendgrid = new SendGrid('username', 'password');
$mail = new SendGridMail();
$mail->addTo('foo@bar.com')->
       setFrom('me@bar.com')->
       setSubject('Subject goes here')->
       setText('Hello World!')->
       setHtml('<strong>Hello World!</strong>');
$sendgrid->smtp->send($mail);

答案 1 :(得分:7)

我从未做过PHP,但以下指南是一步一步的,非常容易上班。

http://www.windowsazure.com/en-us/Documentation/Articles/store-sendgrid-php-how-to-send-email/

希望它有所帮助。

答案 2 :(得分:0)

email-Id ??这是什么? 我猜它是收件人的电子邮件地址。

您的标头不需要To:因为to地址是在第一个参数中指定的。 除非您知道收件人的姓名并希望他看到电子邮件被发送到:某些名称不仅仅是您不需要。 你也有错误:缺少&lt;&gt;在电子邮件地址之前和之后。

P.S。通过PHP的mail()函数发送的电子邮件在垃圾邮件中的结果率最高,尤其是如果您没有在DNS中设置域密钥和SPF。 如果使用Cpanel,请参阅Cpanel中电子邮件组的电子邮件身份验证部分。

答案 3 :(得分:0)

我遇到了同样的麻烦,但这个解决方案对我来说非常合适。 只需按照以下步骤操作:

  1. 只需在您的G邮箱帐户上启用2步验证。
  2. 转到应用密码,然后选择app = other,然后键入AzureWebsite并生成密码,并保留密码。
  3. 替换
  4.   

    $ mail-&gt;密码='新密码';

    4.我希望这对你也有用。

答案 4 :(得分:0)

2017年11月更新的信息:

完整博客文章: https://blogs.msdn.microsoft.com/mast/2017/11/15/enhanced-azure-security-for-sending-emails-november-2017-update/

推荐的发送电子邮件的方法

“Microsoft建议Azure客户使用经过身份验证的SMTP中继服务(通常通过TCP端口587或443连接,但通常也支持其他端口).....”