Mail function is not working

My mail function is not working. When I submit form it says mail sent. But not receiving. I tried echo if the mail sent. It is also working. What is the issue here? Anything with mail function ?

?php
$name    = $_POST[ 'cuf_sender' . $n ];
$email   = $_POST[ 'cuf_email' . $n ];
$subject = $this-o['subpre'] . ' ' . $_POST[ 'cuf_subject' . $n ];
$msg     = $_POST[ 'cuf_msg' . $n ];

$extra = '';
foreach ( $_POST as $k = $f ) {
    if ( strpos( $k, 'cuf_field_' ) !== false ) {
        $extra .= $this-o[ substr( $k, 4, 7 ) ] . ": $f\r\n";
    }
}

$headers =
    "MIME-Version: 1.0\r\n" .
    "Reply-To: \"$name\" $email\r\n" .
    "Content-Type: text/plain; charset=\"" . get_settings( 'blog_charset' ) . "\"\r\n";
if ( ! empty( $from ) ) {
    $headers .= "From: " . get_bloginfo( 'name' ) . " - $name $from\r\n";
} else if ( ! empty( $email ) ) {
    $headers .= "From: " . get_bloginfo( 'name' ) . " - $name $email\r\n";
}

$fullmsg =
    "Name: $name\r\n" .
    "Email: $email\r\n" .
    $extra . "\r\n" .
    'Subject: ' . $_POST[ 'cuf_subject' . $n ] . "\r\n\r\n" .
    wordwrap( $msg, 76, "\r\n" ) . "\r\n\r\n" .
    'Referer: ' . $_SERVER['HTTP_REFERER'] . "\r\n" .
    'Browser: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n";

if ( wp_mail( $to, $subject, $fullmsg, $headers, $email ) ) {
    echo $to;
    exit();

Topic wp-mail email contact Wordpress

Category Web


In addition to the other suggestions, make sure that the 'from' email address is an email address that belongs to the domain of your site, and that it exists.

Some hosts will not send mail from the example.com domain when the 'from' address is '[email protected]'. They will sense that as a 'mail relay', which is what spammers will try, so will block the mail.

Note that the return value of the mail() function is just a flag that shows that the message was successfully/unsuccessfully sent to the mail server. It is not an indication that the mail was actually sent.


You are passing $email where there should be attachments. Look at wp_mail arguments.

Also you have not defined $to variable which in your case i assume should be $email.

Try this,

$name   = $_POST['cuf_sender'.$n];
    $email  = $_POST['cuf_email'.$n];
    $subject= $this->o['subpre'].' '.$_POST['cuf_subject'.$n];
    $msg    = $_POST['cuf_msg'.$n];

    $extra = '';
    foreach ($_POST as $k => $f )
        if ( strpos( $k, 'cuf_field_') !== false )
            $extra .= $this->o[substr($k, 4, 7)].": $f\r\n";


    $headers =
    "MIME-Version: 1.0\r\n".
    "Reply-To: \"$name\" <$email>\r\n".
    "Content-Type: text/plain; charset=\"".get_settings('blog_charset')."\"\r\n";
    if ( !empty($from) )
        $headers .= "From: ".get_bloginfo('name')." - $name <$from>\r\n";
    else if ( !empty($email) )
        $headers .= "From: ".get_bloginfo('name')." - $name <$email>\r\n";

    $fullmsg =
    "Name: $name\r\n".
    "Email: $email\r\n".
    $extra."\r\n".
    'Subject: '.$_POST['cuf_subject'.$n]."\r\n\r\n".
    wordwrap($msg, 76, "\r\n")."\r\n\r\n".
    'Referer: '.$_SERVER['HTTP_REFERER']."\r\n".
    'Browser: '.$_SERVER['HTTP_USER_AGENT']."\r\n";

    if ( wp_mail( $email, $subject, $fullmsg, $headers) )
    {
        echo $to;
    exit();

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.