Question

I have a webapp to send mails and using PHPMailer. I have generated a contact list which stores the email addresses in database.

Now in my mail function(web page), I do not have any field to enter email address manually, rather I would like to fetch the email id's from table and send mail to all at one click.

Can someone please help me with this, not knowing what to do.

Was it helpful?

Solution

public function actionSendMail(){
   $model = YourModelForMails::model()->findall();
   foreach($model as $m){
      $this->mailfunction($m['emailcolumn']);
   }
}

public function mailfunction($email){
    sendyourmail to: $email;
}

OTHER TIPS

SoI will not code for you the app but will give really useful hint to make you workout your app.

  1. Use Yii CActiveRecord based Model to fetch User Data (Normally containing Email and Other Details)
  2. Put PHPMailer in vendors Folder and Import using alias path vendor (Hint Yii::import)
  3. Use PHPMailer and Do the Sending. Here I attach PHPMailer's own example
  4. Put Effort to Make them work together. if you cannot, it means you need to put your work aside and go learning!

Code:

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com';  // Specify main and backup server
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'jswan';                            // SMTP username
$mail->Password = 'secret';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable encryption, 'ssl' also accepted

$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->addAddress('josh@example.net', 'Josh Adams');  // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$mail->WordWrap = 50;                                 // Set word wrap to 50 characters
$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

echo 'Message has been sent';
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top