С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Gerd199
5 / 5 / 3
Регистрация: 06.03.2014
Сообщений: 812
1

Подписать письмо замком

15.05.2018, 00:24. Просмотров 123. Ответов 6
Метки нет (Все метки)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
function maill($to, $title, $message, $mailfrom){
    
    $header  = 'From: '.$mailfrom."\r\n";;
    $header .= 'Reply-To: '.$to."\r\n";;
    $header .= 'Bcc: '.$title."\r\n";;
    $header .= 'MIME-Version: 1.0' . "\r\n";
    $header .= 'Content-type: text/html; charset=UTF-8'."\r\n";
    $header .= 'X-Mailer: PHP v'.phpversion()."\r\n";;
  
    mail($to, $title, $message, $header);   
    
}
Сервер настроен верно, при отправке с потчты письма(почта на хостинге). Письмо подписано замком, а вот если через php, замок перечеркнут.

Что за параметр указан неверно, что замок перечеркнут?

Опять же сервер настроен, все конфиги в порядке. Дело именно в функции отправке письма, что не так с ней?
0
Миниатюры
Подписать письмо замком  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2018, 00:24
Ответы с готовыми решениями:

Как подписать скрипт сертификатом?
Необходимо в скрипте на PHP принимать удаленную xml-ку, необходимо чтобы...

Не отправляется письмо
на сайт установил форму обратной связи на ajaks <form action="" method="get"...

Отправить письмо?
Здравствуйте!!! Я новичок в PHP. Подскажите пожалуйста, как проверить...

Пустое письмо
есть форма <form action="PHP.php"> <div class="contactform"> <label...

Письмо с вложениями
Всем привет, есть вот такой код для отправки писем на почту. ...

6
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
15.05.2018, 05:42 2
"Замок" может означать использование DKIM или зашифрованное письмо, т.е. переданное по защищенному протоколу.
0
Gerd199
5 / 5 / 3
Регистрация: 06.03.2014
Сообщений: 812
15.05.2018, 13:11  [ТС] 3
DKIM подключен
0
Sound84
8 / 8 / 9
Регистрация: 05.03.2018
Сообщений: 49
15.05.2018, 13:16 4
Gerd199, Скорее всего нет шифрования!
0
Gerd199
5 / 5 / 3
Регистрация: 06.03.2014
Сообщений: 812
15.05.2018, 14:54  [ТС] 5
Как настроить шифрование через mail() из php...?

Добавлено через 1 час 32 минуты
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
   $config['smtp_username'] = 'arg-market@site.ru'; //Смените на имя своего почтового ящика. (ваш email)
    $config['smtp_port'] = '25'; // Порт работы. Не меняйте, если не уверены. На 2014 порт вроде 465. ЕСЛИ ВООБЩЕ НЕ РАБОТАЕТ - убрать кавычки в 25
    $config['smtp_host'] = 'ssl://mail.site.ru'; //сервер для отправки почты
    $config['smtp_password'] = 'Z6q5I1z5'; //Измените пароль (от вашего ящика)
    $config['smtp_debug'] = true; //Если Вы хотите видеть сообщения ошибок, укажите true вместо false
    $config['smtp_charset'] = 'windows-1251'; //кодировка сообщений. (или UTF-8, итд) (меняется также в самом низу)
    $config['smtp_from'] = 'site'; //Ваше имя - или имя Вашего сайта. Будет показывать при прочтении в поле "От кого"
    
    function smtpmail($mail_to, $subject, $message, $headers='') {
    
        global $config;
    
        $SEND = "Date: ".date("D, d M Y H:i:s") . " UT\r\n";
        $SEND .= 'Subject: =?'.$config['smtp_charset'].'?B?'.base64_encode($subject)."=?=\r\n";
        if ($headers) 
            $SEND .= $headers."\r\n\r\n";
        else{
        
            $SEND .= "Reply-To: ".$config['smtp_username']."\r\n";
            $SEND .= "MIME-Version: 1.0\r\n";
            $SEND .= "Content-Type: text/plain; charset=\"".$config['smtp_charset']."\"\r\n";
            $SEND .= "Content-Transfer-Encoding: 8bit\r\n";
            $SEND .= "From: \"".$config['smtp_from']."\" <".$config['smtp_username'].">\r\n";
            $SEND .= "To: $mail_to <$mail_to>\r\n";
            $SEND .= "X-Priority: 3\r\n\r\n";
        }
    
        $SEND .= $message."\r\n";
        if( !$socket = fsockopen($config['smtp_host'], $config['smtp_port'], $errno, $errstr, 30)){
            if ($config['smtp_debug']) 
                echo $errno."<br>".$errstr;
          
            return false;
        }
 
        if (!server_parse($socket, "220", __LINE__)) return false;
 
        fputs($socket, "HELO " . $config['smtp_host'] . "\r\n");
    
        if (!server_parse($socket, "250", __LINE__)) {
        
            if ($config['smtp_debug']) 
                echo '<p>Не могу отправить HELO!</p>';
        
            fclose($socket);
        
            return false;
        }
    
        fputs($socket, "AUTH LOGIN\r\n");
    
        if (!server_parse($socket, "334", __LINE__)){
        
            if ($config['smtp_debug']) 
                echo '<p>Не могу найти ответ на запрос авторизаци.</p>';
        
            fclose($socket);
        
            return false;
        }
    
        fputs($socket, base64_encode($config['smtp_username']) . "\r\n");
    
        if (!server_parse($socket, "334", __LINE__)) {
    
            if ($config['smtp_debug']) 
                echo '<p>Логин авторизации не был принят сервером!</p>';
 
            fclose($socket);
 
            return false;
        }
    
        fputs($socket, base64_encode($config['smtp_password']) . "\r\n");
    
        if (!server_parse($socket, "235", __LINE__)) {
        
            if ($config['smtp_debug']) 
                echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>';
        
            fclose($socket);
        
            return false;
        }
    
        fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n");
 
        if (!server_parse($socket, "250", __LINE__)) {
            if ($config['smtp_debug'])
                echo '<p>Не могу отправить комманду MAIL FROM: </p>';
            
            fclose($socket);
            
            return false;
        }
        
        fputs($socket, "RCPT TO: <" . $mail_to . ">\r\n");
 
        if (!server_parse($socket, "250", __LINE__)) {
    
            if ($config['smtp_debug']) 
                echo '<p>Не могу отправить комманду RCPT TO: </p>';
            
            fclose($socket);
            
            return false;
        }
        
        fputs($socket, "DATA\r\n");
 
        if (!server_parse($socket, "354", __LINE__)) {
            if ($config['smtp_debug']) 
                echo '<p>Не могу отправить комманду DATA</p>';
        
            fclose($socket);
            
            return false;
        }
        
        fputs($socket, $SEND."\r\n.\r\n");
 
        if (!server_parse($socket, "250", __LINE__)) {
            if ($config['smtp_debug'])
                echo '<p>Не смог отправить тело письма. Письмо не было отправленно!</p>';
            fclose($socket);
            return false;
        }
        
        fputs($socket, "QUIT\r\n");
        fclose($socket);
        
        return TRUE;
    }
 
    function server_parse($socket, $response, $line = __LINE__) {
        global $config;
        while (@substr($server_response, 3, 1) != ' '){
            
            if (!($server_response = fgets($socket, 256))) {
                
                if ($config['smtp_debug']) 
                    echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>";
                
                return false;
            }
        }
        
        if(!(substr($server_response, 0, 3) == $response)) {
            if ($config['smtp_debug']) 
                echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>";
            return false;
        }
        
        return true;
    }
 
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset="windows-1251"' . "\r\n";
$headers .= 'From: vasya@pupkin.ru'. "\r\n";
smtpmail('coolk@yandex.ru', 'Тема письма', 'Текст письма', $headers);

В ответ получаю 0, не понимаю о чем говорит данная ошибка. Не удалось авторизоваться, верный php код? Пользуюсь хостинг провайдером firstvds, виртуальный сервер

Добавлено через 2 минуты
Не удается авторизоваться, кто еще пользуется firstvds, что за порты и адрес ssmt сервера...???
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
15.05.2018, 16:03 6
Gerd199, не занимайтесь глупостями, а нормально настройте почтовый сервер.

Добавлено через 6 минут
Если не получится настроить шифрование, тогда можете отправлять через сервер, который будет шифровать ваши письма, но и в этом случае не нужно заниматься показанными вами глупостями. PHP не для этого нужен.
0
Sound84
8 / 8 / 9
Регистрация: 05.03.2018
Сообщений: 49
16.05.2018, 11:08 7
ssl порт 465, если вы пытаетесь отправить письмо с помощью smtp со своего сервера то вам нужно отключить шифрование пароля и логина в настройках почтового сервера. И обычно почтовый сервер слушает smtp по адресу ssl://smtp.site.ru (правда не факт это зависит от настроек)

Добавлено через 1 минуту
Phantom-84 прав, вам нужно просто настроить почтовый сервер!
0
16.05.2018, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2018, 11:08

Письмо. Адресат
всем привет. такая проблема . есть код(см.ниже) который отсылает...

письмо не отправляется
я хочу , чтобы с моего сайта пользователи могли отправить сообщение на мой...

Не отправляется письмо
Всем привет. Недавно начал учить php и я не понимаю почему это сообщение не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru