質問

LocalHost(Linux Mint OS)では、SwiftMailerは次のコードで正常に動作していますが、サーバーに移動するたびに送信機能にハングアップし、内部サーバーエラーが発生します。

現在、Googleアプリを介してメールのセットアップを行っているので、SMTPはこの状況では機能しないのでしょうか?もしそうなら、これをSMTPから変更することをどのように提案しますか。

また、このようなメールを送信するたびに、ユーザー名領域のアドレスのアドレスから表示されます。 「セットフロム」関数の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つは、

  1. SSHトンネルを開きます(SSH -2NFCT -D 5000 yoursshuser@yourdomain.org)
  2. そのプロキシを使用するようにブラウザを構成します(例:Firefox:to firelences> advanced> network> settings>マニュアルプロキシ構成>ソックスホスト: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メールを送信している場合は、サーバーで電子メールアカウントを作成する必要があります。この電子メール情報をコードで使用してください。 「from」を使用するときに有効な電子メールアカウントが使用されている場合は、有効な電子メールアカウントを使用していない場合、サーバーは電子メールを送信しません。これは、偽の電子メールアカウントである必要があります。

偽のアカウントを使用して送信する唯一の理由は、mail()関数を使用することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top