20

如何在 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);
4

5 回答 5

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,因此您需要为 Windows 使用伪造的 sendmail :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);
于 2012-05-14T11:47:28.217 回答
7

我从来没有做过 PHP,但是下面的指南是一步一步的,而且非常容易上手。

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

希望它可以帮助某人。

于 2014-01-07T08:26:18.077 回答
0

电子邮件ID ??这是什么?我猜这是收件人的电子邮件地址。

您的标头不需要 To:,因为在第一个参数中指定了 to 地址。除非您知道收件人的姓名并希望他看到电子邮件被发送到:Some Name 不只是您不需要那个。此外,您还有一个错误:在电子邮件地址之前和之后缺少 <>。

PS 通过 PHP 的 mail() 函数发送的电子邮件是成为垃圾邮件的最高比率之一,特别是如果您没有为此在 DNS 中设置域密钥和 SPF 时。如果使用 Cpanel,请参阅 Cpanel 中您的电子邮件组的电子邮件身份验证部分。

于 2012-05-14T11:41:23.750 回答
0

更新信息@2017 年 11 月:

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

推荐的电子邮件发送方法

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

于 2018-01-26T23:47:14.663 回答
0

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

  1. 只需在您的 G-mail 帐户上启用两步验证即可。
  2. 转到应用密码,然后选择应用=其他,然后键入 AzureWebsite 并生成密码,并保留密码。
  3. 更换

$mail->Password = '新密码';

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

于 2016-09-03T12:46:03.123 回答