ユーザーが自分のメールアドレスと友人のメールアドレスを入力するフォームがあります。電子メールが検証されると、コントローラーは電子メール クラスを使用して友人にメッセージを送信します。ユーザーからのメールを友人に受信してもらいたいのですが、うまくいきません。送信者を「myname@mydomain.com」などの静的なものに設定した場合にのみ、メールを正常に送信できます。これが私のフォームです。
<?php
echo $this->Form->create('User', array( 'action' => 'invite',
'controller' => 'users')
);
echo $this->Form->input('User.from', array('label'=>"Your email",'value'=>'your email','class'=>"",'type'=>'email'));
echo $this->Form->input('User.to', array('label'=>"Your friend's", 'value'=>"your friend's email",'class'=>"",'type'=>'email'));
echo $this->Form->end(array('label'=>'Invite', 'class'=>'special-button use-transition'));
?>
次に、My Users コントローラーがフォームを処理します。アプリから有効なメール アドレスにメール メッセージを送信できるという点で、これは正常に機能します。ただし、$from をユーザーのメール アドレスに設定しようとすると、何も送信されません。ユーザーが入力したメールアドレスからこのメールを送信するにはどうすればよいですか? ユーザーコントローラーの関連セクションは次のとおりです。
// tell app to use Cake Email
App::uses('CakeEmail', 'Network/Email');
public function invite(){
if ($this->request->is('post')) {
// Get data from the form and send an email
$to = $this->request->data['User']['to'];
$from = $this->request->data['User']['from'];
$subject = "Some text for the subject line";
$message = "Some text for the message";
// I use this data to send an email but it won't work unless
// I change $from to something static like so:
$from = "myemail@mydomain.com";
$this->send($to, $from, $subject, $message);
// redirect on success not shown...
}
}
// Send function takes the to/from/subject/message and sends it
public function send($to, $from, $subject, $msg) {
$email = new CakeEmail();
$email->template('welcome')
->emailFormat('html')
->from($from)
->to($to)
->subject($subject);
if ($email->send($msg)){
return true;
}
}