У меня очень специфическая проблема ... У меня Ubuntu Server 12.04 с установленным LAMP и правильно установленным и настроенным ssmtp ... Теперь я могу отправлять почту с моего терминала с помощью sudo и без него. Это говорит о том, что моя конфигурация ssmtp правильная.
Я могу отправлять почту из моего php-скрипта, используя:
mail('toemail@gmail.com',$subject,$message);
Но, когда я заменяю toEmail переменной, содержащей строку письма, я хочу отправить, например:
mail($to,$subject,$message);
Тогда в этом случае письмо не отправляется, и вместо этого Gmail сообщает мне, что я ввел неправильный адрес ... Gmail отображает этот адрес как «toemail@gmail.com» ... В то время как в первом В случае, если адрес в полученном электронном письме получен без кавычек ...
Я много искал и просто не могу найти ответ ...
Это сообщение, которое я получаю:
Delivery to the following recipient failed permanently:
'toemail@gmail.com'
С небольшим стуком в голову я смог решить эту проблему ... Хитрость заключается в том, чтобы отправить электронное письмо в URL без кавычек ... Пример:
http://10.1.1.11/sendEmail.php?email=toemail@gmail.com
НОВЫЙ электронный адрес в здесь без кавычек ... Теперь функция mail()
в PHP будет работать с ssmtp, но запросы к базе данных не будут. Чтобы запросы базы данных работали с переменной, в которой будет храниться электронная почта, вам просто нужно добавить одинарные кавычки вокруг нее ... Ура!