当用户订阅我的网站时,我正在尝试发送电子邮件。
为了节省时间...我在Swift_Mailer中使用Symfony。
首先,我尝试通过控制台发送邮件:
php .\bin\console swiftmailer:email:send
这很有效,邮件已发送,客户已收到它。
所以我现在对自己说,我将能够发送带有代码的电子邮件。
那是我的控制器代码:
public function register(Request $request, \Swift_Mailer $mailer)
{
// Here saving new user in the database
$this->sendMail($user->getEMail(), $mailer);
$content = $this->renderView("register.html.twig");
return new Response($content);
}
private function sendMail($email, \Swift_Mailer $mailer)
{
$message = (new \Swift_Message('Hello Email'))
->setFrom(['my.email@gmail.com' => "my name"])
->setTo($email)
->setBody('Here is the message itself');
$mailer->send($message);
}
那是我的.env文件:
MAILER_URL=gmail://my.email@gmail.com:myPasswordHere@localhost
当我尝试发送邮件时,没有错误,我尝试了this StackOverflow link,但是没有问题,回显了“成功”,但Gmail发送框中没有任何内容,而我的客户电子邮件框中也没有任何内容。
您能帮我... 节省我时间 ^^
-------------------------------------------------- --------------编辑1 ---------------------------------- --------------------------
我从未编辑过config/packages/swiftmailer.yaml
文件,就是这样:
swiftmailer:
url: '%env(MAILER_URL)%'
spool: { type: 'memory' }
-------------------------------------------------- --------------编辑2 ---------------------------------- --------------------------
我还尝试使用此代码制作新的运输车:
$transport = (new \Swift_SmtpTransport('smtp.gmail.com', 465))
->setUsername('my.email@gmail.com')
->setPassword('myPasswordHere');
$mailer = new \Swift_Mailer($transport);
这就是我得到的错误:Connection could not be established with host smtp.gmail.com [php_network_getaddresses: getaddrinfo failed: Unknown host. #0]
-------------------------------------------------- --------------编辑3 ---------------------------------- --------------------------
我在swiftmailer.yaml
文件夹中有一个config/packages/dev
档案,这是默认内容:
# See https://symfony.com/doc/current/email/dev_environment.html
swiftmailer:
# send all emails to a specific address
#delivery_addresses: ['me@example.com']
我尝试放置与config/packages/swiftmailer.yaml
中相同的内容,但没有结果。
答案 0 :(得分:-1)
我在您的代码中看不到以下内容:
// Create the Transport
$transport = (new \Swift_SmtpTransport('mail hoster etc', port))
->setUsername('your email')
->setPassword('your password');
// Create the Mailer using your created Transport
$mailer = new \Swift_Mailer($transport);
也许这是您的邮件未发送的原因。