在我的Localhost(Linux Mint OS)上,SwiftMailer在以下代码方面正常工作,但是每当我将其移至服务器上时,就会挂在发送功能上,然后给我内部服务器错误。

我目前通过Google应用程序进行了电子邮件设置,因此也许SMTP对这种情况不起作用?如果这样,您如何建议我从SMTP更改此操作。

另外,每当我发送这样的电子邮件时,它都会出现在用户名区域中的地址的a。我希望它显示“ setfrom”函数中的from地址。

//Include the swiftmailer class
require_once 'comm/swiftmailer/swift_required.php';

//Create a message
//Pass it as a parameter when you create the message
$message = Swift_Message::newInstance();
$message->setSubject('My Subject');
$message->setFrom(array('noreply@domain.com' => 'No Reply'));
$message->setTo(array('me@domain.com' => 'Me'));
$message->setBody($emailContent, 'text/html');

//Create transport class and email the message
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('useracctname')->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);

非常感谢您的任何帮助!

有帮助吗?

解决方案

这可能是服务器上的端口问题。港口465可以关闭以防止垃圾邮件。也可能是服务器的PHP版本缺乏SSL支持。

我想知道,难道我不使用本地邮件服务器,所以它不允许SMTP吗?

如果您像您一样明确地解决Gmail,则不太可能使用其他运输类型或其他服务器。

另外,使用其他运输类型之一呢?

我认为SMTP是您使用Gmail运行的唯一选择。但是,可能是您的服务器正在提供 mail() 基于服务(显然,发送者地址与Gmail不同)。在这种情况下,您可以使用Swiftmailer的 mail 运输.

其他提示

我遇到了同样的问题:我能够在本地发送Gmail电子邮件(更新该配置后: https://www.google.com/settings/security/lesssecureapps ),但没有生产。

解决我的问题我 使用我的生产IP登录我的Gmail帐户 /从我的生产服务器中回答Gmail安全问题。

使用您的生产IP登录Gmail帐户的解决方案之一是

  1. 打开SSH隧道(SSH -2NFCT -D 5000 yousshuser@yourdomain.org)
  2. 配置您浏览器以使用该代理(例如Firefox:firefox>“高级>“网络”>“设置”>手动代理配置>袜子主机:localhost / post:5000 / socks v5)
  3. 像往常一样登录您的Gmail帐户

Symfony输出的错误是:

app.ERROR: Exception occurred while flushing email queue: Failed to authenticate on SMTP server with username "joe.doe" using 1 possible authenticators [] []

好吧,这是解决方案。

如果要发送SMTP邮件,则应在服务器上创建电子邮件帐户,然后在代码中使用此电子邮件信息。如果您没有有效的电子邮件帐户,则服务器将不会发送电子邮件。这应该是一个真正的正确电子邮件帐户。

使用假帐户发送的唯一可能原因是使用Mail()函数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top