我正在使用swiftmailer-让我改写 - 尝试使用swiftmailer!我在MAC OSX上,使用gmail和我的电子邮件客户端,Apple邮件。我正在当地的环境中发展,所以没有任何东西是活的。我还要提一下,这都是在MAMP堆栈中(Mac,Apache,MySQL,php)。 swift mailer lib位于htdocs(我的根文件夹)。
我已尝试使用我的swiftmailer代码在网上看到的每个变体,并使用我的电子邮件客户端设置端口,但都无济于事。我的日志中没有任何错误,即使它们已经打开,所以我没有什么可以解决的。
我有一个html表单,用户可以在其中发送电子邮件。提交后,应将该信息发送到swift邮件程序脚本(email.php),然后将消息发送给用户。当你注册时,你会一直看到这个过程,除了我,这不是注册。
我将详细介绍下面html页面的一部分,然后是swiftmailer脚本。
<div class="col-md-4">
<div class="div1">
<h2>Step 6</h2><p>Email: REQUIRED </p>
<input type="text" id="email" name="email" class="form-control" placeholder="kookmeyer@gmail.com"></br>
</div>
</div>
<div class="row">
<div class="col-md-3">
</div>
<div class="col-md-4">
<div class="submit">
<form action="email.php">
<button type="submit" class="btn btn-primary btn-lg btn-block" name="submit" >Submit</button>
</form>
现在是swiftmailer代码
<?php
require_once 'lib/swift_required.php';
//Pass it as a parameter when you create the message
$message = Swift_Message::newInstance();
$message->setSubject('My subject');
$message->setFrom(array('email@gmail.com' => 'No Reply'));
$message->setTo(array('email@gmail.com' => 'My Name'));
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('username@gmail.com')->setPassword('password');
//Supposed to allow local domain sending to work from what I read
$transport->setLocalDomain('[127.0.0.1]');
$mailer = Swift_Mailer::newInstance($transporter);
//Send the message
$result = $mailer->send($message);
?>
此时任何帮助都将非常有价值。非常感谢提前! -Dan
答案 0 :(得分:0)
首先,您的HTML和PHP似乎没有集成在一起工作,因此我假设您只是使用测试电子邮件地址测试您的PHP文件。换句话说,您不需要在问题中显示您的HMTL表格。
其次,您的代码无论如何都不会起作用,因为您在此处有错误:
$mailer = Swift_Mailer::newInstance($transporter);
您的对象名称为$transport
而不是$transporter
。
如果在运行脚本时没有警告,通知和错误消息,请通过在PHP文件的顶部插入此代码来启用它们。这将覆盖php.ini文件中的任何设置。
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
此处有关错误报告的更多详细信息:http://php.net/manual/en/function.error-reporting.php
另请仔细阅读 Swiftmailer doc on sending emails ,并检查您的PHP安装是否具备所需的功能。
错误消息(如果有)应该已经指向正确的方向。如果您无法解决问题,请在此处查看错误,警告和通知的输出。希望这会有所帮助。