用户注册后如何发送验证/确认电子邮件



我已经编写了向注册用户发送验证邮件的代码!

但问题是,当我在浏览器中运行.php文件时,它说,无法发送确认邮件。

有人告诉我,你需要一个服务器(域)来发送确认邮件,它不能使用LOCALHOST发送。

我可以从LOCALHOST发送确认邮件吗??有办法吗??

如果没有,请告诉我在哪里可以获得免费域(用于测试),在那里我可以上传我的.php文件并发送确认邮件??

如果您在家中的开发服务器上运行脚本,则很可能是ISP阻塞了端口25。

我建议您使用事务性电子邮件服务,例如:

  • AlphaMail
  • PostageApp
  • Mandrill

为什么?

  • 支持HTTP API(在端口80/443上运行,因此没有ISP阻塞)。也就是说,在家跑步很容易
  • 经得起未来考验。您不必考虑托管自己的SMTP基础设施。一旦发送次数增加,就缩放它
  • 你不必考虑送货。由于您发送的IP未列入白名单而被阻止,该名单还在继续
  • 统计学。让我们来跟踪发送/点击/打开/反弹的总数

如何?

由于我是AlphaMail的开发人员之一,我当然建议您使用它(但不仅因为我是它的开发人员,还因为它很棒!:))。由于您使用的是PHP,因此使用AlphaMail PHP客户端很容易:

include_once("comfirm.alphamail.client/emailservice.class.php");
$email_service = AlphaMailEmailService::create()
->setServiceUrl("http://api.amail.io/v1")
->setApiToken("YOUR-ACCOUNT-API-TOKEN-HERE");
$person = new stdClass();
$person->userId = "1234";
$person->firstName = "John";
$person->lastName = "Doe";
$person->dateOfBirth = 1975;
$response = $email_service->queue(EmailMessagePayload::create()
->setProjectId(12345) // Your AlphaMail project (determines template, options, etc)
->setSender(new EmailContact("Sender Company Name", "from@example.com"))
->setReceiver(new EmailContact("Joe Doe", "to@example.org"))
->setBodyObject($person) // Any serializable object
);

AlphaMail的另一个优点是它将逻辑与设计分离开来。因此,您再也不必使用丑陋的非标准(电子邮件)HTML来夸大您的代码了。一旦你需要更改内容,就不需要深入代码,只需登录AlphaMail Dashboard并立即编辑你的模板即可。此外,这些模板是使用简单的模板语言Comlang构建的,因此它们具有高度的个性化。

<html>
<body>
<b>Name:</b> <# payload.firstName " " payload.lastName #><br>
<b>Date of Birth:</b> <# payload.dateOfBirth #><br>
<# if (payload.userId != null) { #>
<a href="/sign-up">Sign Up Free!</a>
<# } else { #>
<a href="/login?id=<# payload.userId #>">Sign In</a>
<# } #>
</body>
</html>

您可以使用sendmail、smtp或其他一些服务,如Amazon SES。AmazonSimple电子邮件服务免费提供沙盒功能(但您需要信用卡才能使用其服务),并且可以轻松地将其配置到本地主机中。

最新更新