top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

Sending html email w/o template in Rails App

+3 votes
238 views

I want to send html emails. I have a field containing a full html doc structure and I would like to send that. Basically the user brings that and saves it to the db.

I have tried various methods, with and without mailer template, also with yield in the template, but I am not getting the user provided html out (render?)

So, in short how do I send html w/o a template, or can the template be empty?

posted Feb 5, 2015 by Kaushik

Looking for an answer?  Promote on:
Facebook Share Button Twitter Share Button LinkedIn Share Button

Similar Questions
+1 vote

EXAMPLE
mail(:to => user.email, :subject => "Hello World!", :from => "abc@gmail.com")

+2 votes

Hi,

I am using phpMailer class to send the HTML email, but whenever I send the html email then at the receiving end we receive some special character (!) at random position.

We have set the charset as utf-8 and calling MsgHTML($body) to pass the body. Took an echo at the send function of phpMailer class where it is printing correctly but when looking at gmail or yahoo then we see some special characters.

MY Code

function qa_send_raw_email($charset, $fromemail, $fromname, $toemail, $toname, $subject, $body, $html, $smtp_active, $smtp_address, $smtp_port, $smtp_secure, $smtp_authenticate, $smtp_username, $smtp_password, $env=null)
{
    require_once 'php-mailer/class-phpmailer.php';

    $mailer=new PHPMailer();
    $mailer->CharSet=$charset;

    $mailer->From=$fromemail;
    $mailer->Sender=$fromemail;
    $mailer->FromName=$fromname;
    $mailer->AddAddress($toemail, $toname);
    $mailer->Subject=$subject;
    $mailer->Body=$body;

    if ($html)
        $mailer->IsHTML(true);

    if ($smtp_active) {
        $mailer->IsSMTP();
        $mailer->Host=$smtp_address;
        $mailer->Port=$smtp_port;

        if ($smtp_secure)
            $mailer->SMTPSecure=$smtp_secure;

        if ($smtp_authenticate) {
            $mailer->SMTPAuth=true;
            $mailer->Username=$smtp_username;
            $mailer->Password=$smtp_password;
        }
    }

    if ($env)
    {
        $mailer->SetFrom($fromemail, $fromname);
        $mailer->AddReplyTo($fromemail, $fromname);
    }

    return $mailer->Send();
}

Excepted Output

<p><strong>Test Data for php mailer.</strong><br\><br\>Thanks Madhu </p>

Current Output

<p><strong>Tes!t Data for php mailer.</strong><br\><br\>Thank!s Madh!u <! /p>

Any pointers.

Thanks,

0 votes

I'm using the class.phpmailer.php code to send email -- it works neat. I can send an email from my domain and it arrives almost immediately.

However, when I use the exact same code (except for the FROM address) from another domain I own, the email literally takes hours (up to 12) to arrive.

Any idea of why there is a difference of email transit times between the two domains?

...