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

如何在windows Azure上使用PHP发送电子邮件?,php,azure,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 .= 'F

如何在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);
$to.='email Id';
$subject=“测试对象”;
$headers='MIME版本:1.0'。“\r\n”;
$headers.='内容类型:文本/html;字符集=iso-8859-1'。“\r\n”;
$headers.='To:'.$To'。“\r\n”;
$headers.='From:'.$name'。“\r\n”;
echo$message='email text here';
@邮件($to、$subject、$message、$headers);
电子邮件Id??这是什么? 我猜是收件人的电子邮件地址

由于在第一个参数中指定了To地址,因此您的头不需要To:。 除非你知道收件人的名字,并希望他看到电子邮件发送到:一些名字,而不仅仅是你不需要的。 此外,您还有一个错误:电子邮件地址前后缺失

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

要使用PHP发送电子邮件,您有几个选项:

选项1:使用SMTP

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

[mail function]
SMTP = mail.mycompany.com
选项2:使用sendmail

您需要修改php.ini配置文件(),并将sendmail\u路径值设置为sendmail可执行文件

[mail function]
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
由于Windows中不存在sendmail,您需要使用Windows的假sendmail:

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

您可以使用SendGrid之类的服务发送电子邮件(他们为Azure用户提供了服务:)。他们将负责发送电子邮件,您只需调用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);
$sendgrid=newsendgrid('username','password');
$mail=new SendGridMail();
$mail->addTo($mail)foo@bar.com')->
设置自('me@bar.com')->
setSubject('主题在这里')->
setText(“你好,世界!”)->
setHtml(“你好,世界!”);
$sendgrid->smtp->send($mail);

我从未使用过PHP,但下面的指南是一步一步完成的,非常容易使用


希望它能帮助别人。

我也遇到过同样的问题,但这个解决方案对我来说非常有效。 只需遵循以下步骤:

  • 只需在您的G-mail帐户上启用两步验证
  • 转到app password,然后选择app=other,然后键入AzureWebsite并生成密码,然后保留密码
  • 替换
  • $mail->Password='newpassword'


    4.我希望这也会对您有用。

    更新信息@2017年11月:

    博客全文:

    发送电子邮件的推荐方法
    “Microsoft建议Azure客户使用经过身份验证的SMTP中继服务(通常通过TCP端口587或443连接,但通常也支持其他端口)…”

    这是示例代码,下面是管理员id,$to=”admin@site.com'; 在其他服务器上发送的电子邮件,但它不适用于windows azure。这如何适用于azure网站?它适用于100%。您可以通过覆盖Azure上的php.ini设置来更改它们。在这里查看信息我以前做过PHP。这是可行的,但确实涉及到相当多的步骤,我觉得这并不是“难以置信的容易”。但最重要的是,它确实起了作用——最终。设置SendGrid也是值得的,它看起来像Azure中一个有用的附加组件。