【问题标题】:How to send emails if your hosting provider does not allow SMTP relay?如果您的托管服务提供商不允许 SMTP 中继,如何发送电子邮件?
【发布时间】:2012-10-20 01:19:32
【问题描述】:

我有一个使用 CodeIgniter 构建并由共享托管服务提供商托管的应用程序。

我的 MX 记录指向 Gmail 服务器,我的应用可以使用 Gmail 和标准 CodeIgniter 电子邮件方法发​​送电子邮件。

现在我想使用 SendGrid 或 Amazon SES 发送一些事务性邮件。但这不起作用,显然原因是我的托管服务提供商不允许 SMTP 中继。

我正在考虑使用 SendGrid API 和 cURL,但我不确定它们与我熟悉的 CI 方法的配合效果如何。

最好我不想更改指向为我们公司处理常规邮件的 Gmail 的 MX 记录。

考虑到这些限制,是否可以使用 SendGrid 或 Amazon SES 发送电子邮件?

【问题讨论】:

    标签: codeigniter email smtp sendgrid amazon-ses


    【解决方案1】:

    您应该使用 SendGrid Web API 来发送电子邮件。如果您的 ISP 正在阻止电子邮件,那么您最好的选择是切换到 HTTP。这是一个非常简单的开关,因为它采用所有相同的参数。查看文档了解更多信息:

    http://docs.sendgrid.com/documentation/api/web-api/mail/#send

    我怀疑它是否适用于 CI 电子邮件库,但没有理由不能只使用 SendGrid 库:

    https://github.com/sendgrid/sendgrid-php


    此外,这个CodeIgniter library 通过 HTTP 发送 SendGrid 电子邮件。可能值得一试。

    【讨论】:

    • 嗨 Swift,非常感谢您的指点。我会检查出来的。
    【解决方案2】:

    您可以在 SendGrid 中使用备用端口:

    许多托管服务提供商和 ISP 作为默认做法阻止端口 25。尝试连接到 smtp.sendgrid.net 时,请记住端口 25、2525、587 和 465 都可以使用。您可以在端口 25、2525 和 587 上通过未加密或 TLS 连接。您可以在端口 465 上通过 SSL 连接。

    -- http://docs.sendgrid.com/documentation/get-started/smtp-ports/

    【讨论】:

    • 您好 AKX,感谢您的回复。我已经用未加密的 SSL 和 TLS 尝试了你提到的所有端口——它不适用于 SendGrid 或 SES。两者都给出了相同的错误。
    • 那是一个糟糕的服务提供商。 :( 我想你已经和他们的客户服务讨论过,看看你是否可以改变 SMTP 中继的东西?如果做不到这一点,我想你将不得不使用 HTTP API(如果它们足以满足你的工作) .
    • 是的,我已经和他们的客服谈过了,但没有任何结果。好的,我可能会尝试 API。
    猜你喜欢
    • 2015-11-02
    • 2010-09-27
    • 1970-01-01
    • 2013-09-06
    • 2012-08-12
    • 1970-01-01
    • 2012-09-30
    • 2013-07-01
    • 2016-12-05
    相关资源
    最近更新 更多