php电子邮件和smtp [重复]
Posted
技术标签:
【中文标题】php电子邮件和smtp [重复]【英文标题】:php email and smtp [duplicate] 【发布时间】:2011-11-29 00:18:18 【问题描述】:我有一个 php 函数可以很好地发送电子邮件,但我希望它使用我在 ini.set 函数中指定的 smtp 服务器。
如果我删除这 3 行代码,电子邮件仍然可以正常发送。
我想使用 smtp 服务器的原因是因为有时这对某些邮件主机不起作用。
connect();
$username = mysql_real_escape_string($_POST['username']);
$result = mysql_query("SELECT email FROM members WHERE username = '$_POST[username]'")
or die ("Error - Something went wrong.");
$row = mysql_fetch_array($result);
$useremail = $row['email'];
$name = "name";
$mail_from = "noreply@name.com";
$mail_to = "$useremail";
$mail_body = "Hello. Thank you for registering. Please click the link below to confirm your email address. ";
$mail_subject = "Confirm you registration".$name;
$mail_header = "From: ".$name." <".$mail_from.">\r\n";
ini_set ("SMTP", "ssl://serveraddress");
ini_set("smtp_port","465");
ini_set("sendmail_from","noreply@name.com");
$sendmail = mail($mail_to, $mail_subject, $mail_body, $mail_header);
if($sendmail == true) mail("john@name.com", "email sent ok", "email sent to '$_POST[email]'", "yea sent ok");
Else mail("john@name.com", "email ERROR", "email not sent to '$_POST[email]'", "yea we got a problem");
【问题讨论】:
您遇到什么错误?您知道 SMTP 发送仅限于 Windows 服务器吗? 这很奇怪。我没有错误。它可以很好地发送到gmail,但不会出现到hotmail。 (它不在任何地方的垃圾邮件或垃圾邮件中)而且我从来不知道 smtp 发送仅限于 Windows 服务器。这种方式在linux服务器上可以吗? “这是我的代码,修复它”问题是不允许的。 @OZ_ 它不是“这是我的代码,适合它”的问题。我试图找出它为什么不使用 ini.set 函数。 【参考方案1】:如果您真的想在您的 Web 应用程序中发送群发邮件,我会查看 SwiftMailer 库,它免费且相对容易设置,您可以实时设置自己的 SMTP 传输器。
除此之外,我在向 hotmail 和 yahoo 发送邮件时遇到了问题,之前当您使用“mail()”函数时电子邮件无法到达那里。请记住,网络电子邮件客户端对标题、结构和安全性非常挑剔,并且可能会轻易拒绝非真实客户端编写的电子邮件。
如果您想测试类似的内容,只需使用本地地址@您的域电子邮件,这通常不会将其过滤掉。现在,如果邮件没有到达那里,你就知道这是另一回事了。
【讨论】:
好的,如果我更改标题并设置 hotmail 和 yahoo 帐户并确保它们都可以访问,我应该没问题吗?它并不是真正的大量电子邮件,它每天大约有 20 封电子邮件左右。希望随着时间的推移而增加。 是的,使用标题和内容结构。请注意,如果您发送 20 封电子邮件或 200 封电子邮件或 2000 封电子邮件,则它是群发邮件。如果您向管理员之类的人发送消息,说明在他的网站上下了新订单,那么现在这是一个目标电子邮件:) 好的,感谢您的帮助。生病看看swiftmailer。似乎它可以使用内置的 PHP 邮件功能:)以上是关于php电子邮件和smtp [重复]的主要内容,如果未能解决你的问题,请参考以下文章