我試過了swiftmailer symfony here的文檔,但即使這些對我來說似乎都是正確的,我仍然無法使它工作。通過symfony 3表格發送郵件
我更改了paramaters.yml,並沒有像解釋的那樣觸摸config.yml。 看來,錯誤來自我的控制器,但在情況下,我會複製你,我一直在寫代碼/變更:
parameters.yml
parameters:
//
mailer_host: localhost
mailer_user: [email protected]
mailer_password: mypassword
config.yml
swiftmailer:
transport: '%mailer_transport%'
host: '%mailer_host%'
username: '%mailer_user%'
password: '%mailer_password%'
spool: { type: memory }
我的形式
class ContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('mail', EmailType::class, array(
'label' => 'your mail'
))
->add('message', TextareaType::class, array(
'label' => 'your message'
))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Contact::class,
));
}
}
我控制器
class MainController extends Controller
{
public function indexAction(Request $request)
{
$contact = new Contact();
$formContact = $this->createForm(ContactType::class, $contact);
$formContact->handleRequest($request);
$data = $formContact->getData();
if ($formContact->isSubmitted() && $formContact->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($contact);
$em->flush();
$message = \Swift_Message::newInstance();
$message->setFrom($data->getMail())
->setTo('[email protected]')
->setBody($data->getMessage() . $data->getMail());
$this->get('mailer')->send($message);
}
return $this->render('app/main/index.html.twig', array(
'form' => $formContact->createView()
));
}
}
我不知道這是否可以幫助或者如果你需要更多的信息,但會很高興分享,謝謝。
似乎錯誤解釋得很好。你試圖訪問你的'Contact'類對象thingy上的一個名爲mail的屬性。但由於它是私人的,你只能從該類(實體)中訪問它。如果它們是生成的('$ data-> getMail()')或者在實體中公開,則使用/創建getter/setter(建議)' - > getData()'返回您在createForm –
感謝回覆@JenneVanDerMeer我更新了我的問題並添加了您的建議。我現在沒有任何錯誤,但我沒有收到任何電子郵件,我的代碼中是否有其他錯誤? (郵件和密碼好) –
@JennevanderMeer謝謝你的幫助,我成功地收到了一封郵件:) –