我遇到了swift邮件程序的问题,它没有向用户发送邮件我将库解压缩到我的网站中的 inc 文件夹,并为swift邮件程序创建了以下消息:
注意:如果您可以推荐除SwiftMailer之外的其他解决方案,请发表评论。
require_once 'inc/lib/swift_required.php';
//Create the Transport
$transport = Swift_SmtpTransport::newInstance('mail.mywebsite.com', 25)
->setUsername('info@mywebsite.com')
->setPassword('myPassword')
;
$mailer = Swift_Mailer::newInstance($transport);
//Define Message Subject
$message = Swift_Message::newInstance('myWebsite Registration')
//e-mail from
->setFrom(array('info@mywebsite.com' => 'myWebsite'))
//e-mail to
->setTo(array('$email1' => '$username'))
//e-mail body
->setBody('
Message body Here
')
;
$result = $mailer->send($message);
//Show user message after message has been sent
include_once 'msgToUser.php';
exit();
我测试了它,我没有收到消息,我不明白为什么,我按照官方网站上的说明进行操作:http://swiftmailer.org/docs/sending.html
有人能说出问题是什么吗?
注意:之前我使用过PHP mail();
功能来发送电子邮件,但它们被归类为垃圾邮件。如果可能,任何人都可以建议解决方案如何使用mail();
并使电子邮件不是垃圾邮件?请不要建议:使用您的主机服务器而不是您的域名,例如而不是使用info@yourdomain.com使用info@yourhost.com。
答案 0 :(得分:4)
我担心你的问题无法得到具体回答,因为除了具体的技术问题之外,你可以面对复杂的问题,需要触及多个不小的地方。
发送问题
首先,您可以使用SwitfMailer发送电子邮件,这应该“正常工作” tm 。但是,如果您正在使用的传输(如SMTP服务器未发送电子邮件)与SwiftMailer直接无关(因为它与PHP mail
无关)。
但是,您可以使用SwitfMailer中的$result
来查看SwiftMailer本身是否遇到发送电子邮件的任何错误。有关更多信息,请参阅SwiftMailer SMTP Troubleshooting (Archived Copy),以防您在使用SwiftMailer与SMTP服务器一起工作时遇到问题。
垃圾邮件问题
这不能具体回答。类似的问题会不时出现在SO上,但大多数情况下都没有具体回答,因为这个主题延伸了您的电子邮件的确切内容(电子邮件标题和正文垃圾邮件评分),从哪个服务器发送(IP地址)和基于主机名的垃圾邮件评分,例如黑名单以及主机名的DNS配置,请参阅SPF)和其他内容。
使用SwiftMailer可以提供帮助,因为您可以交换邮件程序后端,例如购买商业SMTP网关,专注于降低垃圾邮件的负担。然而,当我在其他一些答案/评论中写道:整个企业都在垃圾邮件上运行 - 在“坏”和“好”方面。因此,信任任何这些实体并不总是可取的。
相反,您可以开始了解电子邮件技术的工作原理,垃圾邮件评分的工作原理以及您可以采取哪些措施通过正确配置的SMTP服务器发送正确的电子邮件。这是一些工作,它不能作为答案在这里提供,因为它非常广泛。
答案 1 :(得分:0)
确保您的服务器允许SMTP连接,如果确实如此,请检查它是否在端口25上,而不是使用SSL。
然后,将代码包装在try / catch块上以捕获任何异常。
try {
echo '<pre>';
$transport = Swift_SmtpTransport::newInstance('mail.mywebsite.com', 25)->setUsername('info@mywebsite.com')->setPassword('myPassword');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('myWebsite Registration')
->setFrom(array('info@mywebsite.com' => 'myWebsite'))
->setTo(array('$email1' => '$username'))
->setBody('Message body Here');
$result = $mailer->send($message);
print_r($result);
} catch (Exception $e) {
echo $e->getMessage();
}
答案 2 :(得分:0)
尝试检查您的邮箱,当邮箱耗尽它的配额时,它不会发送任何电子邮件,我清理邮箱后,我的SMTP邮件帐户再次发送电子邮件。我通过CPANEL计划设置邮箱配额,没有人会向此邮箱发送回复,但电子邮件收件人发送了对此邮箱的回复并使邮箱已满。