【问题标题】:Send email regardless php.ini settings无论 php.ini 设置如何发送电子邮件
【发布时间】:2014-06-20 01:28:01
【问题描述】:

我的主机存在一些实际问题,因为他们没有设置 php.ini 来发送电子邮件,现在我的应用程序需要发送带有令牌代码的电子邮件 strong> 等等。我只与少数用户合作,他们的电子邮件地址在他们的登录数据旁边受到保护。

sendmail_from 为空,只是为了更好地说明php.ini 中的域名甚至与实际域名不同。

我只有 MySQL 和 FTP 访问权限来自他们的参数。可能我无法访问php.ini,对吗? (我不确定这里缺乏知识,请见谅)

在带有 XAMPP 的本地主机上,我可以轻松地发送电子邮件,因为我可以随意配置本地 php.ini。

有没有办法发送电子邮件(可能不是 emailto couse 这不太好)按下一个按钮,但不管 php.ini 包含什么看起来我无法访问 php.ini?

我的应用程序主要基于 Javascript/JQuery 构建。我主要使用 PHP 来隐藏敏感信息,处理登录会话和 cookie。我对 PHP 很陌生。

提前感谢您提供的任何建议!

【问题讨论】:

  • 要求房东退款。换主机。利润。
  • 是的。会很棒,但可以说这是不可能的(也是因为他们只从星期一开始工作,而我这个周末不想在没有他们的情况下这样做!)。我也有其他主机的帐户,但它们提供了如此完整的服务,我从来不需要学习所有这些东西。也让我变得懒惰,现在我必须进行所有这些研究并自动教育我懒惰的自我。
  • 我不认为让事情按照他们应该的方式工作是懒惰的,我和@LozCherone 在这件事上。
  • @Laci 一个困境,您如何在工作主机上设置一个简单的 API 邮件代理脚本,然后将消息从损坏的主机卷曲到您的其他主机之一,然后在星期一要求主机解决问题或者您想要退款。

标签: javascript php jquery email


【解决方案1】:

您可以尝试使用PHPMailer 之类的内容。根据他们的github:

被许多开源项目使用:Drupal、SugarCRM、Yii、Joomla!和 还有很多

这是一个邮件类,您可以使用它来代替 mail() - 允许您在不更改 php.ini 的情况下对其进行配置。

如果您可以使用 sendmail,您可以执行以下操作:

<?php
require '../PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer();
// Set PHPMailer to use the sendmail transport
$mail->isSendmail();
//Set who the message is to be sent from
$mail->setFrom('from@example.com', 'First Last');
//Set an alternative reply-to address
$mail->addReplyTo('replyto@example.com', 'First Last');
//Set who the message is to be sent to
$mail->addAddress('whoto@example.com', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer sendmail test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
$mail->addAttachment('images/phpmailer_mini.png');

//send the message, check for errors
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}

否则,您将需要一个可以使用它的 SMTP 服务器。

【讨论】:

  • 一个gmail账号可以作为smtp服务器,用phpmailer
  • 我明白了:2014-05-03 15:55:20 SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: Name or service not known (0) SMTP connect() failed. Message could not be sent.Mailer Error: SMTP connect() failed.。我正在尝试 Google SMTP
  • $mail-&gt;isSMTP(); // Set mailer to use SMTP $mail-&gt;Host = 'smtp.google.com'; // Specify main and backup server $mail-&gt;Port = 587; $mail-&gt;SMTPAuth = true; // Enable SMTP authentication $mail-&gt;Username = 'myaddress@gmail.com'; // SMTP username $mail-&gt;Password = 'secret'; // SMTP password $mail-&gt;SMTPSecure = 'tls'; 这是关键片段。这里有什么问题吗?我在使用 XAMPP 的 localhost 上遇到与服务器上相同的错误。
  • 更改为 $mail -&gt; Host = 'ssl://smtp.gmail.com'; $mail-&gt;Port='465'; 和 $mail-&gt;SMTPSecure = 'ssl'; 后,它的工作速度相当快。人们。你救了我的命。我不能等到星期一告诉托管公司他们是多么无用!
  • 您应该知道,gmail smtp 服务器每天只能发送 400 封电子邮件。还有其他无限的 smtp 服务器 IE serversmtp.com 或者您可以使用更好的主机提供商提供的 smtp 服务器。
【解决方案2】:

PHPmailer 现在在 github 上 https://github.com/Synchro/PHPMailer 它被许多需要安装在系统上但没有安装电子邮件库的应用程序使用。它使用 tcp/ip 套接字建立连接并为您处理低级协议。

【讨论】:

    【解决方案3】:

    您的邮件服务器似乎有问题。所以与其研究太多。为什么不应该继续使用 gmail smtp,因为您的应用程序处于开发模式,您现在可以在不停止工作的情况下使用 gmail smtp。

    http://lifehacker.com/111166/how-to-use-gmail-as-your-smtp-server

    我更喜欢这样做:)

    【讨论】:

      猜你喜欢
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多