SwiftMailerはLocalHostに取り組んでいますが、生産ではありません
-
13-10-2019 - |
質問
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つは、
- SSHトンネルを開きます(SSH -2NFCT -D 5000 yoursshuser@yourdomain.org)
- そのプロキシを使用するようにブラウザを構成します(例:Firefox:to firelences> advanced> network> settings>マニュアルプロキシ構成>ソックスホスト:localhost / post:5000 / socks v5)
- 通常どおり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()関数を使用することです。