Few questions about email sending in php
I have tried several ways to send mail but I hav failed and I m veryyyyyy upset. Now
I have few question about mail sending in php
1. I cant/dont use the smtp server of my ISP. Now which server I can send my mail thru?
2. I want to use yahoo smtp mail server. Now do I have to set yahoo smtp server name and port in php.ini? Cant I set these (both name and port)dynamically in php. if so, how?
3.If the server name I m using uses authenticated smtp, WHERE and how to put code for user id and password in php .
If in mail header then in which format?
4. I hav come to know the following things from website of yahoo-
Outgoing Mail (SMTP) Server:
smtp.mail.yahoo.com (Use SSL, port: 465, use authentication)
I am also giving u my account details
My yahoo id- email@example.com (created 2day for the test)
Now would anybody pls pls tel me or write me a simple code by which I can send mail without using my Isp's smtp server. DO I need to use those info. in php.ini . Or is there any way to add them dynamically in php.
I once tried with the following code but nothing happened
//define the receiver of the email
$to = 'firstname.lastname@example.org';
//define the subject of the email
$subject = 'Test email';
//define the message to be sent. Each line should be separated with \n
$message = "Hello World!\r\nThis is my first mail.";
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From: email@example.com\r\nReply-To: firstname.lastname@example.org";
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );
//if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
echo $mail_sent ? "Mail sent" : "Mail failed";
echo "Thank You <b>Tanvir</b> for ur message";
echo "<p>Your mail address is <p>$to </p>";
echo "<p>Your message was <p> $message </p>";
//I set server=smtp.mail.yahoo.com and port=25 in php.ini and restart the server .
NB. If I configure php.ini in php code using ini_set(), wouldn't it be permanent next time. But what happens if I host these php file in another server. There can be a lot other php files trying to do the same thing. Isn't it a problem.
I can also send mail using a free smtp server and a mail client in my windows pc which requires default 25 port for smtp. Should I use this port-25 with the above server name smtp.mail.yahoo.com[/php]
Last edited by tanvirtonu; 11-09-2007 at 01:05 PM.
I'd bet money that yahoo's email servers require authentication before sending email. Here's a tutorial that explains how you can send mail from php that requires smtp authentication, however it requires you to have the PEAR Mail package installed.
Brother I have just tried it using pear package-
Originally Posted by TJ111
My code is as follows-
But the mail is not sent. I have shut down all firewall or antivirus and tried again but didn't work. Wud anybody pls try my code and tell me if it works so that I can be sure that the problem is not with my code.One more thing which port should I use-default 25 or 465 which uses SSL and authentication . Pls help me.
/* mail setup recipients, subject etc */
$recipients = 'email@example.com';
$headers['From'] = 'firstname.lastname@example.org';
$headers['To'] = 'email@example.com';
$headers['Subject'] = 'ME HERE';
$mailmsg = 'Hello, This is a test.';
/* SMTP server name, port, user/passwd */
$smtpinfo['host'] = 'smtp.mail.yahoo.com';
$smtpinfo['port'] = '25';
$smtpinfo['auth'] = true;
$smtpinfo['username'] = 'bhonest_4ever2007';
$smtpinfo['password'] = 'abcdefg';
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory('smtp', $smtpinfo);
/* Ok send mail */
$mail_object->send($recipients, $headers, $mailmsg);
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)