您好我以前使用sendgrid发送电子邮件,并且当前正在将其用作应用程序的重置密码。我也希望将它用于其他应用程序。我的AWS为第二个应用程序提供了一个新实例。我已经从我的第一个实例和php.ini复制了sendmail.ini,我使用的是基本相同的代码,用于在我的php文件中发送电子邮件。第一个是工作,第二个是不工作。代码如下:
$subject = "Don't be stuck for a password!" ;
$Emessage = wordwrap("<html><body>Please click the link below to reset your password. <br><br> <a href=http://xxx.xxx.xx/resetPassword.php?AuthCode=".$Token."&email=".$email."&userid=".$userid." />Reset Password</a><br><br> Thanks, <br></body></html>", 70, "\r\n");
$from= "xxx@xxx.com";
$from_name="xxx Ltd.";
$headers = "Date: ". date("r") ."\r\n". "From: $from_name <$from>\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
//echo $message;
$mailSent= mail($email, $subject, $Emessage, $headers);
if (!$mailSent){
//$reset= error_get_last();
$reset='Not OK';
}
注意mailSent返回true。它必须是一些配置问题。另外,我在两个实例上运行相同版本的xampp。
我的sendmail.ini如下:
[sendmail]
smtp_server=smtp.sendgrid.net
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=xxx
auth_password=yyy
force_sender=xxx@xxx.com
我的php.ini在[mail function]中有以下内容:
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" - t"
答案 0 :(得分:0)
由于相同的代码在一个实例而不是另一个实例上工作,如果我们假设实例完全相同,则它必须在您的实例外部。 AWS有一个初始出站电子邮件限制,因此您可以点击它,但它已在您的其他实例上取消。
解决此问题的一种方法是通过SendGrid发送Web API(不限于AWS [通过端口80发送])。
您将无法使用mail
功能发送,但是,我们有一个PHP Library to send email可以让您轻松完成。
答案 1 :(得分:0)
原来我犯了一个不重启我的Apache的新手错误!那就错了!