私は迅速なメーラー経由でメールを送信しようとしています。私はちょうど私がYouTubeでチュートリアルビデオでそれを見たように(私はここにリンクを投稿する必要がありますわからない)が、私のプロジェクトではなく、ビデオでは大丈夫です:DIはポート465と暗号化SSLで試しても、結果なし。いくつかのアドバイスをお願いします!前もって感謝します!Yii2は、迅速なメーラー経由でGmailアカウントにメールを送信します。
のactionContact:
public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('contactFormSubmitted');
return $this->refresh();
}
return $this->render('contact', [
'model' => $model,
]);
}
メーラーの設定:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@app/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => '[email protected]',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
],
とのparams:
return [
'adminEmail' => '[email protected]',
];
私はかなり遠く、それらの電子メールの物事に精通からだと私は今でもそうしてください学んでいます哀れな質問のために私に怒らないでください:)
EDIT: のContactFormモデル:
<?php
namespace app\models;
use Yii;
use yii\base\Model;
/**
* ContactForm is the model behind the contact form.
*/
class ContactForm extends Model
{
public $name;
public $email;
public $title;
public $body;
public $verifyCode;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
// name, email, subject and body are required
[['name', 'email', 'title', 'body'], 'required'],
// email has to be a valid email address
['email', 'email'],
// verifyCode needs to be entered correctly
['verifyCode', 'captcha'],
];
}
/**
* @return array customized attribute labels
*/
public function attributeLabels()
{
return [
'name' => 'Name:',
'email' => 'Email:',
'title' => 'Title:',
'body' => 'Connect with us :)',
'verifyCode' => 'Verification Code'
];
}
/**
* Sends an email to the specified email address using the information collected by this model.
* @param string $email the target email address
* @return bool whether the model passes validation
*/
public function contact($email)
{
if ($this->validate()) {
Yii::$app->mailer->compose()
->setTo($email)
->setFrom([$this->email => $this->name])
->setSubject($this->subject)
->setTextBody($this->body)
->send();
return true;
}
return false;
}
}
SwiftMailer経由でメールを送信するコードを貼り付けます。 – TomaszKane
このコードの外観は不明です。 –
このように:https://github.com/yiisoft/yii2-app-advanced/blob/master/frontend/models/ContactForm.php#L51 – TomaszKane